web-dev-qa-db-ja.com

パスワードのないSSHがRSAパスフレーズの求められたときにターミナルから働いていない

パスワードレスSSHを持つCentOS 6.4ボックスを他の複数のシステムに設定しました。端末をCENTOSコンピュータ上の直接正しいユーザーとして使用するとうまく機能します。ただし、他のシステムから同じユーザーの1つとしてCentOSボックスにログインした場合、RSAキーパスフレーズの入力を求められます。正しいユーザーとしてログオンしているときに必要なのはなぜですか?

だから、3つのマシンがある場合(A、B、C)。 Aがセットアップされているので、SSH上でマシンBにパスワードが接続されている可能性があります。それは大丈夫です。ただし、From Machine C CからSSH、そのリモートSSH端末からBにSSHを試みると、これにはパスワードが必要です。

マシンAには、他のいくつかのマシン(パスワードに)アクセスするスクリプトがあります。マシンCからマシンAにリモートでログインできるようにする必要があり、マシンBにアクセスするスクリプトを開始する必要があります。

5
robross0606

パスフレーズなしでキーを生成するか、_SSH_ASKPASS_変数を使用して現在の端末からパスフレーズを読み取る特殊なスクリプトを作成します。これは、関連するスクリプトからssh-addを呼び出すときに特に便利です。例えば:

_install -vm700 <(echo "echo 'my_passphrase'") $HOME/.ps
cat /path/id_rsa | ssh-add DISPLAY= SSH_ASKPASS=$HOME/.ps -
_

ノート:

  • _.ps_スクリプトは1回限りの作業ですが、残りはRCファイルに追加できます。
  • sshが端末を持つか、DISPLAYが設定されている場合は機能しません。
  • Ssh-agentが実行されていない場合は、そうでない場合:eval "$(ssh-agent -s)"
0
kenorb

あなたが言った、

としての1つそれら同じユーザー

だから私たちは話しています複数のユーザー

私が正しいのなら、それが私に起こっているように思われることはこれです:

  • aSユーザーにログオンしますfoo
  • machine BのユーザーbarB:/home/bar/.ssh/authorized_keysの公開鍵はA:/home/foo/.ssh/identity.rsaにあるfooの公開鍵を持っています。
  • もちろん、fooからssh bar@Bを発行し、それを機能させてPasswordless

マシンCからユーザーbarがマシンA( "同じユーザーの1つ")、すなわちbarとして、彼はbar@Aになります。 foo@Aではありません。そして彼がbar@Bとしてログを記録しようとすると、sshによって取得されたIDキーはログインを実行することですbarです。それは:/ home/---foo /。ssh/identity.rsa、しかしa:/ home/bar /。ssh/identity.rsa。たぶんそのfile is =パスフレーズによってロックされています。

そのため、ユーザーとそれらが使用しているIDを確認してください。

0
LSerni