web-dev-qa-db-ja.com

Hetzner:読み込みキー“ /root/.ssh/id_rsa.pub”:無効な形式

HetznerバックアップスペースのSSHキー認証を試します。まず、自分のマシンで公開鍵と秘密鍵を生成してから、次のコマンドを使用します。

server> cat .ssh/id_rsa.pub >> storagebox_authorized_keys

このコマンドの後

echo -e "mkdir .ssh \n chmod 700 .ssh \n put storagebox_authorized_keys .ssh/authorized_keys \n chmod 600 .ssh/authorized_keys" | sftp <username>@<username>.your-storagebox.de

Sftpのログ記録後にエラーが発生しました:

Load key "/root/.ssh/id_rsa.pub": invalid format

デバッグ:

OpenSSH_7.6p1 Ubuntu-4ubuntu0.2, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: /etc/ssh/ssh_config line 53: Applying options for user.your-backup.de
debug1: Connecting to user.your-backup.de [2a01:4f8:b19:3000::14] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa.pub type 0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa.pub-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.2
debug1: Remote protocol version 2.0, remote software version mod_sftp
debug1: no match: mod_sftp
debug1: Authenticating to user.your-backup.de:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: ecdh-sha2-nistp256
debug1: kex: Host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: [email protected] compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: [email protected] compression: none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ssh-rsa SHA256:EXMPL
debug1: Host 'user.your-backup.de' is known and matches the RSA Host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:EXMPL /root/.ssh/id_rsa.pub
debug1: Server accepts key: pkalg ssh-rsa blen 279
Load key "/root/.ssh/id_rsa.pub": invalid format
debug1: Next authentication method: password

この問題を解決するにはどうすればよいですか?

UPD:id_rsa.pubのコンテンツ:ssh-rsa string with slash and symbols

そのデバッグ出力を生成するコマンドライン:ssh -v [email protected]。両方のファイルの内容は同一です。

UPD2:/etc/ssh/ssh_configの次の行を削除した後

Host user.your-backup.de
    User u198752
    IdentityFile  ~/.ssh/id_rsa.pub

キーのパスフレーズなしで新しいssh-keyを生成し、新しいエラーが発生しました:

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to user.your-backup.de [2a01:4f8:b19:3000::14] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.2
debug1: Remote protocol version 2.0, remote software version mod_sftp
debug1: no match: mod_sftp
debug1: Authenticating to user.your-backup.de:22 as 'u198752'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: ecdh-sha2-nistp256
debug1: kex: Host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: [email protected] compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: [email protected] compression: none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ssh-rsa SHA256:exmpl 
debug1: Host 'user.your-backup.de' is known and matches the RSA Host key.
debug1: Found key in /root/.ssh/known_hosts:2
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:lexmpl /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password

UPD3:最初からすべての手順を実行しました。新しい鍵ペアを作成し、公開鍵をauthorized_keysに移動し、ssh_configを元の状態に戻しました。デバッグ出力の最後の行は次のとおりです。

debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:EXMPL /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
1
Kate Gurman

問題は、Hetznerのバックアップスペースではなく、ローカルコンピューターにあります。

sshを呼び出すときにIDファイルを指定しない場合は、構成ファイルの1つに間違った名前が含まれている必要があります。公開鍵を秘密鍵としてロードしようとします。

試す

ssh -v -F /dev/null [email protected]

参考までに、次のコマンドと比較してください。

$ ssh -v -i /etc/issue [email protected]
OpenSSH_7.6p1 Ubuntu-4ubuntu0.2, OpenSSL 1.0.2n  7 Dec 2017
...
Load key "/etc/issue": invalid format

オプション-iは秘密鍵の指定に使用されるため、構成のどこかに/root/.ssh/id_rsa.pubからprivateキーをロードしようとするものが必要ですが、ファイルにはa publicキー。

編集

コメントの混乱の一部に対処するには:

  • ssh-keygenを使用してキーペアを作成できます。これにより、公開キーはid_rsa.pubに、秘密キーはid_rsaに保存されます(特に指定しない限り)。
  • 秘密鍵は、秘密を保持し、システムを離れることはありません。
  • 公開部分は、秘密キーではなく、ターゲットシステムのauthorized_keysファイルにコピーされます。
  • ssh_configHost *の共通部分は、自分が何をしているのかわからない限り、変更しないでください。
  • -F /dev/nullの提案は、実際の使用ではなく、誤った構成のロードを回避することを意図したものです。
2
RalfFriedl