私は自宅に2台のラップトップを持っており、どちらもUbuntu 12.04(デスクトップ)を実行しており、両方とも同じNetGearWi-Fiルーターを使用しています。いずれかのマシンで「MACバインディング」と呼ばれる手法を使用して、ルーターがインターネットに接続しようとするたびに常に同じ192.168.1.52IPアドレスを割り当てるようにしました。 (無関係:MACバインディングとは、特定のMACアドレスを常に特定のIPにバインドするようにルーターを構成することを意味します。)
これで、192.168.1.1から192.168.1.50の範囲のランダムIPが常に割り当てられるラップトップが1つと、常に192.168.1.52が割り当てられるラップトップ(「ビルドサーバー」)が1つあります。
ビルドサーバー(192.169.1.52マシン)にssh
する「クライアント」ラップトップ(ランダムIPマシン)で実行するbashスクリプトを作成しようとしています。したがって、ビルドサーバーがLAN内から「専用」IPを持つ必要があります。これらのbashスクリプトにパスワードを明示的に入力する必要はないので、 この記事はこちら の手順に従ってSSHキーを生成しました。具体的には、私は:
id_rsa.pub
ファイルを生成します)id_rsa.pub
ファイルをビルドサーバーにscp
'し、~/.ssh/authorized_keys
ファイルにcat
'しました。クライアントラップトップのSSHキーがビルドサーバーのauthorized_keys
ファイル内に存在することを確認しました。何が起きてる?ビルドサーバーのSSHが、クライアントのラップトップからの承認されたキーを尊重しないのはなぜですか?ビルドサーバー(sshd
など)で何かを再起動する必要がありますか?ここで重要なステップを逃したことがありますか?トラブルシューティングを開始する方法は?前もって感謝します!
Update:どうやらUbuntuには/var/log/secure.log
がありませんが、doesには/var/log/auth.log
があります。このログをビルドサーバーで追跡し、クライアントのラップトップからビルドサーバーにSSHで接続しようとすると、次のようになります。
ssh myuser@buildserver
を実行しますauth.log
ファイルに次の出力が表示されます。May 21 12:02:07 buildserver sshd[28930]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106)
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: Called
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: username = [myuser]
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: /home/myuser is already mounted
May 21 12:02:10 buildserver sshd[28930]: Accepted password for myuser from 192.168.1.3 port 39821 ssh2
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
May 21 12:02:10 buildserver sshd[29003]: Received disconnect from 192.168.1.3: 11: disconnected by user
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session closed for user myuser
おそらく私が言及すべきこと:両方のマシン(クライアントラップトップと私のビルドサーバーでは、ユーザー名/アカウント名はmyuser
)-両方のマシンで同じユーザー名が原因でLinuxが混乱する可能性がありますか?
最初のステップ:/etc/init.d/sshd restart
でsshを再起動します。また、authorized_usersファイルの権限が正しいことを確認してください。確認するには、chmod 600 ~/.ssh/authorized_keys
を使用して、ログインしているユーザーが所有していることを確認します。
私にとっては、id_rsa.pubを削除することが役に立ちました(私は〜/ .ssh/id_rsaキーを使用していました)。これは、id_rsa.pubが私のid_rsaキーと一致しなかったために発生しました。
公開鍵はどのような形式ですか?
多くのツールが次のようなキーを生成していることがわかりました。
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "1024-bit RSA, converted from OpenSSH by [email protected]"
AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRb
YYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ
5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=
---- END SSH2 PUBLIC KEY ----
と私 authorized_keys
ファイルには常に次のようなキーが含まれていました:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRbYYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=
(公開鍵はすべて1行に連結されています)