リモートサーバーがあります。私はすでにそのリモートサーバーに正常にsshできます-私のキーはリモートサーバーの_authorized_keys
_にあります。
ここで、GitHubからそのリモートサーバーに直接プルします。しかし、リモートサーバーで_ssh -T [email protected]
_を試すとpermission denied (publickey)
が表示されます。
ローカルマシンからリモートサーバーに直接_id_rsa.pub
_をコピーする必要がありますか、それとも危険ですか?
これが答えである場合、それを行うための最良の方法は何ですか?
または、リモートサーバーで新しい公開鍵を生成し、それをgithub acocountに追加する必要がありますか?
更新:
詳細なsshからの出力は次のとおりです。
_~$ ssh -Tv [email protected]
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [192.30.252.131] port 22.
debug1: Connection established.
debug1: identity file /home/richard/.ssh/id_rsa type -1
debug1: identity file /home/richard/.ssh/id_rsa-cert type -1
debug1: identity file /home/richard/.ssh/id_dsa type -1
debug1: identity file /home/richard/.ssh/id_dsa-cert type -1
debug1: identity file /home/richard/.ssh/id_ecdsa type -1
debug1: identity file /home/richard/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA Host key.
debug1: Found key in /home/richard/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/richard/.ssh/id_rsa
debug1: Trying private key: /home/richard/.ssh/id_dsa
debug1: Trying private key: /home/richard/.ssh/id_ecdsa
debug1: No more authentication
_
id_rsa.pub
は、何の危険もなく、どこにでもコピーできます。これは公開鍵であり、このようなもののためのものです。これは鍵ペアの半分であり、アクセスしたい場所と共有することで、秘密鍵を機能させることができます。
リモートログインを許可するには、公開鍵がauthorized_keys
(一部のシステムではauthorized_keys2
)にリストされている必要があります。この形式で、各行に1つのキー:
ssh-rsa AAAIHAVEREMOVEDTHEMAJORITYOFTHEKEYBECAUSEISEENONEEDTOPOSTTHATWALLOFTEXTHERE9yfRjxw== jarmund@jarmint
これを実現するには、コピーした後、次のようにauthorized_keys
ファイルに追加します:cat id_rsa.pub >> ~/.ssh/authorized_keys
ほとんどの正常なシステムでは、.ssh
フォルダーの権限が緩すぎると、キーベースのログインを使用できなくなります。フォルダは700
である必要があるため、引き続き問題が発生する場合はchmod 700 ~/.ssh
さらに、.ssh
フォルダー内のファイルは600である必要があります:chmod 600 ~/.ssh
編集1:
ファイル自体、id_rsa.pub
自体はリモートサーバーでは必要ありません。 authorized_keys
の一部としてのコンテンツのみ。 ssh -vT [email protected]
を実行して詳細なログを有効にすることをお勧めします。これにより、どのような権限が要求されるかを正確に確認できます。
編集2:
これは、提供されたどのキーも、リモートサーバーがファイルに持っているものと一致しないことを意味します。あなたが見たいものは次のようなものです:
debug1: Offering RSA public key: /home/jarmund/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 535
確認すること:
authorized_keys
authorized_keys
の名前をauthorized_keys2
に変更してみてくださいdebug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/richard/.ssh/id_rsa
debug1: Trying private key: /home/richard/.ssh/id_dsa
debug1: Trying private key: /home/richard/.ssh/id_ecdsa
debug1: No more authentication
デバッグトレースによると、これらのキーファイルは実際にはローカルシステムに存在せず、sshは実際にはリモートサーバーにキーを提供していません。使用したいキーが実際にsshを実行しているホストに存在していること、およびファイルの名前が正しいことを確認してください。デフォルトファイル以外のキーファイルを使用する場合は、sshコマンドラインで指定する必要があります。
ssh -i /path/to/some_key -Tv [email protected]
サーバーは、Githubへの認証に秘密鍵を必要とします。名前が示すように、公開鍵は公開されていると見なされるため、認証するのに十分ではありません。
Ssh経由で接続せずにリモートサーバーでGithubを使用する必要がない場合は、ssh-agent転送を使用する必要があります。そのためのガイドはGithubで入手できます: https://developer.github.com/guides/using-ssh-agent-forwarding/ 。
それ以外の場合は、新しいキーを生成してアカウントにリンクする必要があります。
コマンドを直接置くことができます。
$猫〜/ .ssh/id_rsa.pub
sshキーがすでに存在する場合は、それが表示されます。それ以外の場合はエラーになります。新しいキーを追加する必要があります。