パスワードなしのsshが機能しない


35

私は、W /セットアップにパスワードなしのssh bを試してみた ABBAも同様に。ssh-keygen -trsa両方のマシンで公開鍵と秘密鍵を生成しました。使用ssh-copy-idから公開鍵をコピーするユーティリティをAするBだけでなく、BA

パスワードなしのSSHから作品AまでBが、notからBA。〜/ ssh /フォルダーのアクセス許可を確認しましたが、正常なようです。

A's .ssh フォルダーのアクセス許可:

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts
-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub
-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa
-rw-------  1 root root   799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root  4096 2011-07-27 00:37 ..
drwx------  2 root root  4096 2011-07-27 00:38 .

B's .ssh フォルダーのアクセス許可:

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .

Aはubuntu 10.04(OpenSSH_5.3p1 Debian-3ubuntu4、OpenSSL 0.9.8k 25 Mar 2009)Bはdebianマシンです(OpenSSH_5.1p1 Debian-5、OpenSSL 0.9.8g 2007年10月19日)

からA

#ssh B

正常に動作します。

からB

#ssh -vvv A 
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
root@192.168.122.1's password: 

これは本質的に、fileを使用して認証していないことを意味します/root/id_rsa。私はssh-add両方のマシンでもコマンドを実行しました。

/etc/ssh/sshd_configファイルの認証部分は

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files

アイデアが不足しています。任意の助けをいただければ幸いです。


設定は何ですかPermitRootLoginにおける/etc/ssh/sshd_configAには?
-taneli

@taneli:、yesそれ以外の場合、ユーザーはパスワードの入力を求められません。
レーケンシュタイン

私の場合、私は「は、/ etc / ssh / sshd_config」Ubuntuで12.04ファイル内のコメントを解除「IgnoreUserKnownHostsのイエス」に持っていた
マーティンMagakian

回答:


24

次の手順に従っていることを確認してください。

マシンA

ターミナルを開き、次のようにコマンドを入力します。

root@aneesh-pc:~# id

私たちがルートであることを確認するだけです。

我々下記のような上記のコマンドの出力のものは使用してrootにルート他にスイッチされている場合はsu、コマンドを

uid=0(root) gid=0(root) groups=0(root)

1)キーを作成します。

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d root@aneesh-pc
The key's randomart image is:
+--[ RSA 2048]----+
|          ooo+==B|
|         . E=.o+B|
|        . . .+.*o|
|       . . .  ...|
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+

パスフレーズを使用していません。必要な場合は使用できます。

2)公開鍵をマシンBの.ssh/authorized_keysファイルにコピーします

root@aneesh-pc:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@mylap
root@mylap's password: 

次に、を使用してマシンにログインしてssh 'root@mylap'、チェックインします。

~/.ssh/authorized_keys

予期しないキーが追加されていないことを確認してください。

mylapを、ログインするマシン(マシンB)のホスト名またはIPに置き換えます

3)パスワードなしでBにログインする

root@aneesh-pc:~# ssh root@mylap
Warning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.local
aneesh@mylap:~$

マシンB

4)マシンAに再度ログインするためのキーを作成します

root@mylap:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 root@streaming-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          o   .  |
|         . + + o |
|        S o * E  |
|           = O . |
|            O +  |
|           + o o.|
|            . o+=|
+-----------------+

5)公開鍵をマシンAの.ssh/authorized_keysファイルにコピーします

root@mylap:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
root@aneesh-pc's password: 

次に、を使用してマシンにログインしてssh 'root@aneesh-pc'、チェックインします。

.ssh/authorized_keys

予期しないキーが追加されていないことを確認してください。

6)パスワードなしでAにログインする

ssh root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

これらの手順を完了できる場合、完了です。これで、ssh-key(公開鍵)が有効なログインを持つ2つのマシンができました。


指定された6つのすべてのステップを実行し、ステップ5まで関連するすべてのことを検証しましたが、どういうわけかステップ6が機能しません
-Cuurious

このコマンドの出力「ssh -v root @ aneesh-pc」を提供できますか。ユーザー名とホスト名を自分のものに置き換えます。
aneeshep

15
/root(770)の 許可がdrwxrwx--- 70 root root 4096 2011-07-27 00:37 .. オープンすぎた犯人を見つけました。権限を変更し drwxr-xr-x、現在は機能しています。親ディレクトリの許可がに影響するという事実を想像できませんでしたssh
-Cuurious

1
@Cuurious Good catch、私のホームディレクトリ770も設定され、aに変更され、750すべてが世界に合っています:)私はいつもLinux premsがそのように逆に機能することを忘れているようです。
-complistic

1
ステップ3でエラーが発生しました。パスワードを入力するとssh-copy-idが実行されますが、パスワードの入力を求められずにログインできません。authorized_keysファイルに.pubのテキストが含まれ、ログイン時にキーを提供しています。 。役立たず。すべてのディレクトリに対する権限が正しい。
マットクラーク

44

パスワードなしのsshをセットアップした後、ユーザーパスワードを尋ねられました。/var/log/auth.logリモートマシンを見ると、問題が指摘されています。

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

そのため、必ず正しく設定してください。

chmod o-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

他のユーザーが.sshフォルダーを上書きすることを禁止することは明らかですが、ホームフォルダーに同じ要件を設定するのは難しいことです。

また、オプションとオプションが無効になっていない/etc/ssh/ssd_configことを確認してください。デフォルトでは問題になりません。RSAAuthenticationPubkeyAuthenticationyes


必ず上記のそれらのフォルダが正しいユーザーによって所有されても作る
GoalBased

間違って作成されたrealtekドライバーアーカイブを展開することで、この状況に陥りました。それは私がそれを展開していたディレクトリの所有者を変更しました。
ポールマクミラン

2
ホームフォルダーは書き込み可能ではありません。書き込み可能な場合は、~/.ssh別の名前に変更して、そこに自分のキーで新しいフォルダーを作成できます。
ケビンパンコ

2
驚くばかり!ホストマシンのログを調べることを考えていませんでした。ありがとう!
user3099609 14年

14

おそらくより高いレベルのアクセス許可の問題。グループなどからホームディレクトリと.sshディレクトリへの書き込み権限削除する必要があります。 これらの権限を修正するには、chmod 755 ~ ~/.sshまたはを実行しchmod go-w ~ ~/.sshます。

それでも問題が解決しない場合は、ログで次のgrepを発行します。

sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

LOCAL_USER_NAMEローカルユーザー名で置き換えます...)

sshd認証情報がセキュリティログに記録されていると仮定すると、問題について詳しく説明されているはずです。次のようなエラーが表示される場合:

DATE HOSTNAME sshd [1317]:認証が拒否されました:ディレクトリ/ path / to / some / directoryの所有権またはモードが正しくありません

これは上記の問題です。問題のディレクトリを見つけて、グループなどから書き込み権限を削除する必要があります。

ホームディレクトリへの書き込み許可を制限する必要がある理由については(.ssh以降のディレクトリで許可が既に制限されている場合でも)、他のユーザーが.sshディレクトリの名前を変更して新しいディレクトリを作成できるようにします。ほとんどのユーザーの修正は、おそらくディレクトリの内容を確認するのではなく、アクセス権を変更することです(アクセス権が間違っているため)そのままでは使用できません...

TLDNR:グループおよび/または他のユーザーのホームディレクトリへの書き込みアクセスを許可すると、sshはパスワードログインを強制します。


2

各マシンでrootアカウントを使用していますか?通常、Ubuntuでは、ユーザーアカウントを使用し、必要に応じてsudo権限を付与します。

非rootユーザーを使用しsudo chown $USER -R ~/.sshて問題を解決できる場合

その他の確認事項:

B id_rsa.pubがAにあることを再確認してくださいauthorized_keys

Aの/etc/ssh/sshd_config内容を確認

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes

Ya、Ubuntuマシンでrootアカウントを有効にしているため、両方のシステムでrootユーザーとして実行しています
-Cuurious

うん、私はあなたが見落としていたかもしれない他のいくつかの提案を追加しました。その出力は本当に役に立たないが、それはそうではなく、rsaが受け入れられなかった理由については何もない。
スミスマックス

1
RSAキーが受け入れられなかった理由は、ここで私が推測する重要な要素です:)。sshd_configのは、言った要素の上に含まれている、私は内容組み込むために、質問を編集した/etc/ssh/sshd_configファイルの内容を
Cuurious

-3

ターゲット変更の/ etc / ssh / sshd_config

PermitRootLogin no

PermitRootLoginはい

次に、sshd PIDを強制終了します。

root @ dzone2#ps -ef | grep ssh root 28075 27576 0 Nov 17?6:11 / usr / lib / ssh / sshd

root 17708 20618   0 10:09:30 pts/37      0:00 grep ssh root@dzone2 # kill -HUP 28075 root@dzone2 # ps -ef|grep ssh
root 17861 20618   0 10:09:44 pts/37      0:00 grep ssh
root 17852 27576   0 10:09:42 ?           0:00 /usr/lib/ssh/sshd

1
これは役に立ちません。問題は、パスワードなしのSSHログイン(RSAキーペアによる認証)が機能しないことです。指定した手順は、rootSSHログインを機能させるためのものです。これは、この質問の内容とはまったく関係ありません。さらに、rootアカウントが有効になっている場合(Ubuntuではデフォルトでは無効です)、rootSSHログインを有効にすることは非常に危険です。
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.