scpができなくなった時の対処法・bashrc編

scpコマンドでファイルを他のサーバにコピーしようとしたとき、パスワードの問い合わせがあるのに、scpによるファイル転送がされない場合、コピー対象となるサーバーの.bashrcを変更・追記しませんでしたか!?
.bashrcに追記した内容・コマンドによっては、scpができなくなります。
以下、当方がscpコマンドができなくなった時の原因と対応を以下に記します。
使用したOSはCentOSになります。


スポンサーリンク

scpができなくなった時の原因

当方がscpできなくなった時の現象と原因を以下に記します。

解決方法

以下に解決方法を3つ記述します。

  1. .bashrcの出力があるコマンドを記述しない。(または出力させない。)
  2. .bash_profileに記述する。
    .bashrcと.bash_profileの違いは以下の資料を参考にしてください。
  3. bashシェルの場合、SSH_TTY環境変数を利用する
    以下、SSH_CLIENT環境変数を利用した場合の例を記述します。

SSH_TTYを使用した例

.bashrcで何らかの処理をしたい時、以下のように記述することによりsshとscpの動作を一応別々に記述することができます。
SSH_TTYは、コマンドに割り当てれている端末がセットされます。つまり、端末を持たない場合は何もセットされないことを利用し判別しています。

[sakura@centos6 ~]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
if [ "$SSH_TTY" != "" ]; then
  date
fi

SSH_TTYの環境変数を利用し一応sshとscpを切り分ける記事でした。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-08 (土) 17:17:10