web-dev-qa-db-ja.com

sshキーを別のマシンにコピーして、そこでGitHubを使用できるようにしますか?

リモートサーバーがあります。私はすでにそのリモートサーバーに正常に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
_
12
Richard

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

確認すること:

  • 秘密鍵の1つが、リモートに追加した公開鍵と一致するものであることを確認してくださいauthorized_keys
  • キーがログインしようとしているユーザー名と一致していることを確認してください(公開キーの最後の部分である必要があります)
  • authorized_keysの名前をauthorized_keys2に変更してみてください
5
Jarmund
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]
2
Kenster

サーバーは、Githubへの認証に秘密鍵を必要とします。名前が示すように、公開鍵は公開されていると見なされるため、認証するのに十分ではありません。

Ssh経由で接続せずにリモートサーバーでGithubを使用する必要がない場合は、ssh-agent転送を使用する必要があります。そのためのガイドはGithubで入手できます: https://developer.github.com/guides/using-ssh-agent-forwarding/

それ以外の場合は、新しいキーを生成してアカウントにリンクする必要があります。

2
user2313067

コマンドを直接置くことができます。

$猫〜/ .ssh/id_rsa.pub

sshキーがすでに存在する場合は、それが表示されます。それ以外の場合はエラーになります。新しいキーを追加する必要があります。

0