web-dev-qa-db-ja.com

公開鍵と秘密鍵を生成した後、SSHに接続できません

誰かが助けることができますか? Windows 7にopenssh(バージョンOpenSSH_6.8p1)をインストールし、公開鍵と秘密鍵を生成しましたが、そのSSHに接続できません。コマンド「sshlocalhost」を使用すると、「接続が127.0.0.1によって閉じられました」というエラーが表示されます。

ただし、「ssh localhost -o PubkeyAuthentication = no」を介して公開鍵認証をスキップすることで接続できます。

コマンド「ssh-vlocalhost」の出力

OpenSSH_6.8p1、OpenSSL 1.0.2a 2015年3月19日
debug1:構成データの読み取り/ etc/ssh_config
debug1:ローカルホスト[127.0.0.1]ポート22に接続しています。
debug1:接続が確立されました。
debug1:IDファイル/home/Vinoth/.ssh/id_rsaタイプ1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_rsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_dsaタイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_dsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_ecdsaタイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_ecdsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_ed25519タイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Vinoth/.ssh/id_ed25519-証明書タイプ-1
debug1:プロトコル2.0の互換モードを有効にする
debug1:ローカルバージョン文字列SSH-2.0-OpenSSH_6.8
debug1:リモートプロトコルバージョン2.0、リモートソフトウェアバージョンOpenSSH_6.8
debug1:match:OpenSSH_6.8 pat OpenSSH * compat 0x04000000
debug1:SSH2_MSG_KEXINITが送信されました
debug1:SSH2_MSG_KEXINITを受信しました
debug1:kex:server-> client aes128-ctr [email protected] none
debug1:kex:client-> server aes128-ctr [email protected] none
debug1:SSH2_MSG_KEX_ECDH_REPLYが必要です
debug1:サーバーホストキー:ecdsa-sha2-nistp256 SHA256:4Lnpmdki8UuIiQtJyZoc2vxu8x9l PVSN4vykW + axilc
debug1:ホスト 'localhost'は既知であり、ECDSAホストキーと一致します。
debug1:/home/Vinoth/.ssh/known_hosts:1でキーが見つかりました
debug1:SSH2_MSG_NEWKEYSが送信されました
debug1:SSH2_MSG_NEWKEYSが必要です

debug1:SSH2_MSG_NEWKEYSを受信しました
debug1:サーバーでローミングが許可されていません
debug1:SSH2_MSG_SERVICE_REQUESTが送信されました
debug1:SSH2_MSG_SERVICE_ACCEPTを受信しました
debug1:継続できる認証:公開鍵、パスワード、キーボード-対話型
debug1:次の認証方法:公開鍵
debug1:RSA公開鍵の提供:/home/Vinoth/.ssh/id_rsa
接続は127.0.0.1によって閉じられました

.sshフォルダーの下のファイルのリスト

$ ls -lrt total 7 -rwxrwx --- 1 Vinoth None 519 Jun 11 18:36known_hosts
-rw-rw ---- 1 Vinoth None 1679 Jun 12 00:48 id_rsa
-rw-rw ---- 1Vinothなし398Jun 12 00:48 id_rsa.pub
-rw-rw ---- 1Vinothなし398Jun 12 23:47authorized_keys

/ var/logの下にあるファイルのリスト

$ ls -lrt
合計54101
-rw-r--r--1 Vinoth Administrators 35167 Jun 11 15:10 setup.log
-rw-r--r--1 Vinoth Administrators 25541 Jun 11 15:10 setup.log.full
-rw ---- r--1システムシステム469Jun 11 15:43 sshd.log
-rw-r--r-- 1 sshd Administrators 55330520 Jun 13 00:57 lastlog

sshd.logは更新されていません。 lastlogファイルが読み取れません

猫sshd.log

Vinoth @ Vinoth-HP/var/log $ cat /var/log/sshd.log/var/emptyはrootが所有している必要があり、グループや誰でも書き込み可能ではありません。

4
Vinoth

最も可能性の高い説明は、問題のキーに適切に制限されたファイル権限を設定していないことです。あなたは設定したいかもしれません

  chmod 600 id_rsa
  chmod 600 id_rsa.pub
  cat id_rsa.pub >> authorized_keys
  chmod 600 authorized_keys

これは十分に厳格です。

1
MariusMatutiae

あなたが書く

「sshlocalhost-o PubkeyAuthentication = no」を介して公開鍵認証をスキップすることで、接続できます

良い

だから$ssh-copy-id localhost

(次に、ソースからリモートシステム〜/ .ssh/authorized_keysにpubキーを配置する必要があります)

出口

その後

ssh localhost

そして、それは 'cosでまっすぐ進むはずです。最初にパブキーを試し、それが機能するはずです。

追加

ls -l /var/log/sshd.log

それが最後に書かれたのもいつかを見て、それからcat /var/log/sshd.log

または、tail /var/log/sshd.logで最後/最新のエントリを確認できると思います

追加-b

cat/var/log/sshd.logは「/ var/emptyはrootが所有している必要があり、グループや誰でも書き込み可能ではない」と述べています。

試してみてください

$ chown root/var/empty
chown:無効なユーザー: 'root'

上記のエラーが発生する可能性があります。それはcygwin/cygwinopensshの奇妙なことかもしれません。

だから試してみてください

(たぶんcygwinはばかげている)

ここで述べたように
https://www.cygwin.com/ml/cygwin/2008-02/msg00429.html

$chown SYSTEM /var/emptyをお試しください

また、sitllが機能しない場合は、cat sshd.logで再度エラーが発生する可能性があります。これは、進行状況です。

追加c

新たに始めてみることができます] ssh-Host-configを再実行してみることができますが、sshdサービスを(停止するだけでなく)削除し、ssh-Host-のために/ etcのキーを削除する必要があることがわかりました。本当に新鮮なものを設定するための設定。

sc stop sshd(またはnet stop sshd、またはcygrunsrv -E sshd)

sc delete sshd(またはcygrunsrv -R sshd)

rm /etc/ssh*(これらはすべてファイルです)

それで十分かもしれませんが、あなたもすることができます

Net User sshd /delete

Net User cyg_server /delete

/ etc/passwdからsshdまたはcyg_serverユーザーを削除します

そして、/ var/emptyを削除するように提案されているのを見ました(削除しなかったので、再インストールは問題ありませんでした) https://www.cygwin.com/ml/cygwin/2014-03/msg00315.html

Cygwinを(アンインストールせずに)再インストールすることもできます。私がそれをしたとき、私は1つのコマンドがさらにいくつかのスイッチを持っていることに気づきました。 opensshのようにインストールしたものはすべて、まだチェックされているはずです。

再起動する必要はなかったと思います

次に、管理コマンドプロンプトを開き、ssh-Host-config okを実行して、デフォルトとnet startsshdを実行します。

0
barlop