ユーザー名/パスワードの代わりにキーファイルを使用してssh認証を設定しようとしています。クライアントはPuTTYを実行するWindowsボックスであり、サーバーはUbuntu 12.04 LTSサーバーです。
Puttygen.exeをダウンロードして、キーペアを生成しました。 /etc/ssh/sshd_config
には次の行があります。
AuthorizedKeysFile %h/.ssh/authorized_keys
そして、私のクライアントの公開鍵ファイルでは、これはこう言います:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----
「ssh-rsa AAA」から「[email protected]」にパーツをコピーし、それをサーバー上のファイル([自分のホームフォルダー])~/.ssh/authorized_keys
に配置しました。 PuTTYの[接続]> [SSH]> [認証]で、クライアントで生成した秘密キーへのパスを入力し、セッション設定を保存しました。
でsshサーバーを再起動しました
Sudo service ssh restart
プロファイルをPuTTYにロードして(秘密キーがまだ[接続]> [SSH]> [認証]にあり、パスが正しいことを確認した)プロファイルを実行すると、
Server refused our key
公開鍵をファイルの下に置いてみました ディレクトリ ./ssh/authorized_keys/
でもそれは役に立たなかったので、./ssh/authorized_keys
を ファイル、キーを貼り付けます。また、サーバー上で秘密/公開キーのペアを生成し、./ssh/authorized_files
に公開キーを入れて、クライアントのPuTTYに秘密キーをロードしようとしました。サーバーを再起動しても解決しませんでした。
このエラーは、ユーザーのホームフォルダー以外の場所にキーを配置することで解決できることがわかりましたが、これはホームフォルダーが暗号化されている場合にのみ役立ちます。
また、おそらく1024は短すぎると考えて、4096ビットキーを生成しようとしました。
これを機能させるにはどうすればよいですか?ありがとう!
わかりました、/var/log/auth.log
は言いました:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Googleは~/.ssh/
が700で、~/.ssh/authorized_keys
が600でなければならないことを教えてくれたので、それを行いました。今/var/log/auth.log
言う:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
OK、それは修正されましたが、これが私がすでに試したものとどのように異なるかわかりません。
私がしたこと:
~/.ssh/authorized_keys
に公開キーを入力します1行で(ssh-rsa
で開始する必要があります)chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh -R
/etc/ssh/sshd_config
を含むようにAuthorizedKeysFile %h/.ssh/authorized_keys
を変更しますSudo service ssh restart
トラブルシューティングを行うには、# tail -f /var/log/auth.log
を行います。
ご協力いただきありがとうございます!
この問題が発生しました。このスレッドで既に説明されているように構成が正しく設定されているにもかかわらず(authorized_keysのアクセス許可など)、公開キーの形式が間違っていることがわかりました。次の形式でした:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "imported-openssh-key"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDUoj0N3vuLpeviGvZTasGQ...
... lPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT
---- END SSH2 PUBLIC KEY ----
うまくいきませんでした。しかし、それを次の形式で動作させました:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU.....j0N3vuLpeviGvZTasGQa1rcJiPXQMW7v3uurb+n94B9MQaaWR0odsg5DJQL92TNenOda5BO1nd08y6+sdLQmHXExTz6X8FzgoVsAkEl3RscxcxHUksiKA9JfTo38vQvG/bPxIHMCuSumCQVA1laf3rO/uOrkcB7iMWhaoi1/z6AbFtPzeh7xjGfInMWwtBI0CsHSRF73VWIxT26w0P+KjafCjSn/7vDO1bT8QHujSQelU/GqaVEvbbvPl1a7POVjKgHLNekolwRKfNeVEewcnmZaoqfHgOKlPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT UserName@HOSTNAME
問題は、windowsがlinuxとは異なるnew lineを使用しているため、windowsからlinuxにキーをコピーするときに\ n linuxのエディターでは表示できない行の最後。
/var/log/auth.logを末尾にしてログインしようとすると、エラーは次のようになります。
sshd:エラー:key_read:uudecode AAAAB3N [....] ==\n
Windowsでキーを変更して、最後にnew lineのない1行でキーを変更し、それをLinuxにコピーすると、動作するはずです(did私のためのトリック)。
ホームディレクトリへのアクセス許可を変更する必要がありました
chmod 700 ~
〜/ .sshディレクトリのアクセス許可を770から700に変更し、〜/ .ssh/authorized_keysファイルのアクセス許可を660から600に変更する必要がありました。
何らかの理由でグループのアクセス許可を削除すると、この問題が修正されました。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
~/.ssh/authorized_keys
ファイルでは、キーをすべて1行にする必要があります。上記のペーストのように複数の行に追加した場合は、行を結合してみてください。
ここに私のために働いたものがあります:
puttygen
で、キーを生成した後、必ずトップフィールドから情報をコピーして貼り付け、authorized_keysファイルに移動してください。クライアントマシンに公開鍵を保存してから開くと、テキストはputtygen
画面の上部のテキストとは異なります。繰り返しますが、必ずputtygen
画面のトップから(キーを作成した後)テキストを_~/.ssh
にあるはずのauthorized_keysファイルにコピーアンドペーストしてください。
私にとって問題は、ルートを使用して~/.ssh/authorized_keys
を作成したので、ルートが所有していました。 chown sshuser:sshuser ~/.ssh/authorized_keys
にならなければならなかった
私もこのエラーに直面し、authorized_keysファイルのパーミッションを600
に変更することで解決しました。
chmod 600 ~/.ssh/authorized_keys
1行に公開鍵を持っていることに関連する問題である場合がありますが、このアプローチはそれを解決するようです
echo 'the content of the public key' > /root/.ssh/authorized_keys
上記のすべての回答に加えて、puttygen
からキーを正しくコピーして貼り付けてください。
キー文字列の大部分をダブルクリックして選択した場合、テキストボックスは+
などの一部の文字で行を分割し、 +
文字の後のテキスト(テキストボックスが小さすぎるため表示されません)。 ssh-rsa
からテキストボックスの最後まで、文字列全体を手動で選択してください。
オープンsshをデバッグするには、次を使用できます。
Sudo `which sshd` -p 2020 -Dd
他のポート2020でsshdを実行します。現在のプログラムとしてsshdを実行するため、出力が画面に表示されます。閉じている場合は閉じられます。
その後、接続してみてください。
説明:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
一般的なエラーは、ユーザーがテキストエディター(Vimなど)を使用して、「挿入」をアクティブにする前にコピーしたテキストを貼り付けることです(貼り付ける前にVimで+ iを押します)
ルートとしてログインしているときに.sshファイルとauthorized_keysファイルを作成していたため、間違った権限が付与されました。また、すべてのファイルをルートディレクトリの下に配置しました。これは、「サーバーがキーを拒否しました」に関する多くの問題の原因だと思います。
これらのファイルの所有権を希望するユーザーに変更するのは良い習慣ではないため、手順をたどり、SSHを使用したいユーザーとしてログインし、.sshとauthorized_keysを再度作成したことを確認しました。間違い。
Win7をXubuntu 15.04サーバーに接続する方法: VPSに接続するPuTTYを使用してSSHキーを作成する方法
実際、authorized_keys
の許可を644
に変更し、問題は解決しました。
chmod 644 ~/.ssh/authorized_keys