web-dev-qa-db-ja.com

sshクライアントにパスワード認証のみを使用させる方法

例:Ubuntu 11.04のpubkey認証を使用する場合、サーバーに対してパスワード認証のみを使用するようにsshクライアントを設定するにはどうすればよいですか? (デフォルトでキーでログインするサーバーでパスワードをテストするために必要です)

私は方法を発見しました:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

そして今、パスワードの入力を求められますが、正式な方法はありますか?

414
LanceBaynes

私も最近これが必要になり、これを思いつきました:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

クライアントがパスワード認証を許可しないように構成されていないことを確認する必要があります。

636
scoopr

私はこの目的のためのショートカットを発見しました:

ssh user:@example.com

コロン(:)とその後の空のパスワード。

174
Halil Özgür

Scooprによってポストされたメソッドと同様に、sshクライアント構成ファイルでホストごとのオプションを設定できます。

.sshディレクトリで、configというファイルを作成し(まだ存在しない場合)、権限を600に設定します。次に、

Host <some hostname or pattern>

その後、ホストごとのオプションを設定します。たとえば、

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

だからあなたは

Host server.to.test
PubkeyAuthentication=no

そのファイルで、その後単に

ssh server.to.test

オプションが選択されます。

38
EightBitTony

私は最近これを必要としましたが、上記のオプションはどれも機能しませんでした。ssh -vは、-oスイッチを介して渡されたコマンドラインオプションが~/.ssh/configファイルで指定された値によって上書きされることを示しました。

うまくいったのはこれでした:

ssh -F /dev/null <username>@<Host>

ssh manページから:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

この回答のクレジット: sshに.ssh/configを無視させるにはどうすればよいですか?

14
adeelx

私はこれらの答えのいくつかを試しましたが、ssh -v公開鍵がホームディレクトリから引き出されていることを示し続けました。しかし、偽のIDファイルを指定すると、私にとってはうまくいきました。

ssh -i /dev/null Host

私はこれを恒久的に行う必要があります(APCラックマウントPDUで壊れたSSHサーバーを回避するには、セキュリティを重視する場合、これらのことからfarに近づかないでください)。設定ファイル:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
6
miken32

また、.ssh/configにアクティブなBatchMode=yesがないことも確認してください。そうしないと、インタラクティブなパスワードプロンプトを取得する機会がありません。

2
Gunnar Tiedt

私はこの問題を抱える世界で唯一の人かもしれませんが、which sshを介して見た別のオペレーティングシステム(cygwinシェルのWindowsではchoco ssh)からのsshがありました

だから解決策は

 /usr/bin/ssh [email protected]

フルパスに注意してください。 cyg-get opensshを実行した後でこれを行いました

1
Jonathan

@scooprと@HalilÖzgürの回答がうまくいきませんでした。

これは私のために働きました:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

ソース: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html

1
shrx