Ubuntu Server 13.04(B)からの認証のために、Ubuntu Server 12.04(A)上のSSHサーバーの公開鍵認証を設定するのに問題があります。
私が今やっていること(私は here の指示に従おうとしています):
ssh-keygen -C ""
で新しいキーを作成し、パスフレーズを使用せずに/.ssh/id_rsa
に書き込みます-エラーは発生しませんssh-copy-id -i /.ssh/id_rsa user@Host-a
を実行します-また、成功メッセージssh -i /.ssh/id_rsa user@Host-a
-user@Host-a
のパスワードを入力する必要がありますAで、/.ssh/authorized_keys
の実行後にssh-copy-id
が変更されているかどうかを確認しました。また、両方のデバイスでこれを/etc/ssh/sshd_config
に追加しました:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /.ssh/authorized_keys
ここで何が問題になるのか誰にも分かりますか?
マシンAの/var/log/auth.log
の末尾は次のとおりです。
Jun 13 22:17:56 laptop-camil sshd[12344]: Server listening on 0.0.0.0 port 22.
Jun 13 22:17:56 laptop-camil sshd[12344]: Server listening on :: port 22.
Jun 13 22:18:27 laptop-camil sshd[12345]: Authentication refused: bad ownership or modes for directory /.ssh
Jun 13 22:18:30 laptop-camil sshd[12345]: Accepted password for camilstaps from 164.138.27.37 port 48407 ssh2
Jun 13 22:18:30 laptop-camil sshd[12345]: pam_unix(sshd:session): session opened for user camilstaps by (uid=0)
Jun 13 22:18:35 laptop-camil sshd[12464]: Received disconnect from 164.138.27.37: 11: disconnected by user
Jun 13 22:18:35 laptop-camil sshd[12345]: pam_unix(sshd:session): session closed for user camilstaps
Jun 13 22:18:42 laptop-camil sshd[12516]: Authentication refused: bad ownership or modes for directory /.ssh
Jun 13 22:18:44 laptop-camil sshd[12516]: Connection closed by <Host-b> [preauth]
ログファイルの内容、特に/var/log/auth.log
? .sshディレクトリとファイルのアクセス許可を再確認することもできます。
私は、この種のアクセスのためにsshd_configを自分で変更する必要はありませんでした。あなたの変更が物事、特にAuthorizedKeysFile行を壊したかどうか疑問に思っています。通常、authorized_keysは$USER/.ssh
の下に配置します。
私のサーバーのいずれかのユーザーからの許可は次のとおりです。
:~/.ssh$ ls -ld .
drwx------ 2 rrd rrd 4096 May 28 17:57 .
:~/.ssh$ ll
total 280
-rw-r----- 1 rrd rrd 4351 May 22 16:20 authorized_keys
-rw------- 1 rrd rrd 1679 Apr 27 2012 id_rsa
-rw-r--r-- 1 rrd rrd 399 Apr 27 2012 id_rsa.pub
-rw-r--r-- 1 rrd rrd 266138 Jun 13 00:18 known_hosts
個々のファイルが少なくともこの制限を受けていることを確認してください。
Guntbertが指摘しているように、ディレクトリとファイルが所有者であることも確認してください。それ以外の場合、アクセス許可は意味がありません(または機能しません)。
Bのauthorized_keysのキーの所有者は誰ですか? (キーの後にuser @ Hostと書かれているビット。)root @ Aですか?
つまり、~/.ssh/authorized_keys
を見て、セットアップのbert@etherbert
と同等のものは何ですか:
ssh-rsa AAAA...ffsII8dSaDF33 bert@etherbet
テストのためにリモートの.ssh/authorizedキーを手動で編集し、接続を開始するユーザーのid_rsa.pubコンテンツを入力します。
リモートauthorized_keysファイルにキーを持つユーザーから来ていることを確認してください。
ディレクトリ~/.ssh
は、rootではなくユーザーが所有する必要があります。それを変更して、それは動作します。
Ssh-agentを使用するたびに秘密鍵のパスフレーズを入力する必要を避けるため。 ssh-add .ssh/id_rsa
はキーをエージェントに追加し、それ以降、エージェントはsshにキーを提供します。
これは古い質問であり、すでに回答されていますが、ユーザーが(ecryptfs
などを使用して)ホームディレクトリを暗号化している場合、sshデーモンは〜/ .ssh/authorized_keysファイルを見ることができません。その場合は、 here にリストされているソリューションに従ってください。
このソリューションでは、sshd構成(/ etc/ssh/sshd_config)を変更し、AuthorizedKeysFile
を/etc/ssh/%u/authorized_keys
に変更し、authorized_keysファイルを/ etc/ssh/username
/authorized_keysファイルにコピーすることをお勧めします/ etc/ssh/username
の所有権とsshdで必要な適切なアクセス許可)。
私には何も機能しませんでした。なぜか分からないのですか?私はそれぞれの解決策を試しました。
最初の
ssh-copy-id:id_rsaおよびid_rsa.pubをコピーしませんでした
2番目
ssh-agent $ Shell
ssh-add -L
ssh-add
ssh-copy-id -iリモートホスト
両方とも機能しませんでした。私は不運だと思います。誰かが.ssh
フォルダの権限をルートから変更するように言っていました。私はそれがより良い選択肢ではないと思った。上記のケースが失敗したときに私がしていたこと。サーバーに新しいキーを作成し、このキーをgithub/gitlabに保存します。それはクールな方法でもありません。ここで代替手段を試しましたが、それが誰かを助けるかもしれないことを願っています。
最初に、書き込み可能なユーザー許可を持つリモートサーバー上にフォルダーを作成します。次に、ローカルマシンで以下の手順に従います
cd〜/ .ssh
scp -r * [email protected]。**:path_to_writable_folder_on_remote_server
そして、私はリモートサーバーにログインしてから
cd path_to_that_folder_where_I_copied_keys
その後
mv *〜/ .ssh
(なぜ)最後に、うまくいきました。