リモート サーバー scp の問題

リモート サーバー scp の問題

私は Debian Linux のリモート コンピューターに管理者権限を持っています。最初はすべてうまくいっていました。すべてのユーザーが特定のコードを実行できるように、いくつかの変数をグローバルに定義しようとしました。現在、そのサーバーにファイルを scp できません。scp コマンドを実行すると、次のメッセージが表示されます。

bash: scp: command not found
lost connection

scp私のローカル PC とサーバーの両方で利用できます。SSH を使用してリモート コンピューターに接続できます。ただし、接続すると次のように表示されます。

-bash: id: command not found
-bash: [: : integer expression expected

しかし、このコマンドを実行すると:

which id

出力は次のようになります。

/usr/bin/id

そして、基本コードへのパスはシステムに対して定義されていると思います。また、リモート コンピューターは scp へのパスを認識しており、出力は次のとおりwhich scpです。

/usr/bin/scp

私がやったこととして覚えているのは、 にファイルを作成し、その後そのファイルを削除したということだけです。また、 、、/etc/profile.dに間違った PATH 指定がないことを確認しました。~/.bashrc~/.profile/etc/profile

リモート コンピュータの何が問題なのか知っている人はいますか?

答え1

scpユーザーがコマンドにアクセスできるかどうかを確認するには、以下のコマンドを使用できます。

echo $PATH

出力例:

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

これにより、ユーザーがアクセスできるコマンド パスが表示されます。

scpコマンドをチェックしている場合、scpコマンドは にあります/usr/bin/。 の出力にecho $PATHが含まれていない場合は/usr/bin/、「コマンドが見つかりません」というメッセージが表示されます。

問題を解決するには、

export PATH=$PATH:/usr/bin/

恒久的な変更の場合は、上記を.bash_profile

答え2

ファイルにエラーがあります.bashrc。次のコマンドを使用してデフォルト バージョンを復元し、再接続してください。

$ cp /etc/skel/.bashrc ~/

答え3

問題は解決しました。 に間違った PATH 定義が追加されました/etc/environment。その間違いを修正すると、問題は解決しました。

関連情報