2014-10-29 3 views
2

Я пытаюсь вытащить свой id_rsa.pub на сервер, чтобы я мог ssh в него.Добавление открытого ключа ssh на сервер

Я запустить следующую команду,

cat ~/.ssh/id_rsa.pub | ssh -v -p 12345 [email protected] 'cat >> ~/.ssh/authorized_keys' 

, который возвращает следующую отладку:

debug1: Reading configuration data /etc/ssh_config 
debug1: /etc/ssh_config line 20: Applying options for * 
debug1: Connecting to 123.45.67.8 [123.45.67.8] port 12345. 
debug1: Connection established. 
debug1: identity file /Users/myname/.ssh/id_rsa type 1 
debug1: identity file /Users/myname/.ssh/id_rsa-cert type -1 
debug1: identity file /Users/myname/.ssh/id_dsa type -1 
debug1: identity file /Users/myname/.ssh/id_dsa-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.2 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4 
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH_5* 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr hmac-md5 none 
debug1: kex: client->server aes128-ctr hmac-md5 none 
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Server host key: RSA [some server host key] 
debug1: Host '[123.45.67.8]:12345' is known and matches the RSA host key. 
debug1: Found key in /Users/myname/.ssh/known_hosts:6 
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: Offering RSA public key: /Users/myname/.ssh/github_rsa 
debug1: Authentications that can continue: publickey 
debug1: Offering RSA public key: /Users/myname/.ssh/id_rsa 
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/myname/.ssh/id_dsa 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

Я не могу понять, в чем проблема .. может кто-нибудь, пожалуйста, помогите мне вне?

ответ

3

Проверка подлинности на основе ключей будет работать только в том случае, если у authorized_keys есть Правильные разрешения.

Попробуйте сделать CHMOD 600 ~/.ssh/authorized_keys

+0

Вы имеете в виду на моем компьютере? по-видимому, у меня нет файла с именем authorized_keys. Это что-то, что мне нужно сгенерировать? – ytrewq

+0

Извините, это было непонятно. Это не на вашем локальном компьютере, а на удаленной машине. Команда, с которой вы сначала бежала (из вашего вопроса), сгенерировала файл на удаленной машине. Попробуйте сделать ssh -v -p 12345 [email protected] 'chmod 600 ~/.ssh/authorized_keys –

+0

thanx, но это также привело к той же ошибке. – ytrewq

3

Ваша команда будет работать только если вы можете SSH к серверу, введя пароль. Для этого также требуется создание dir ~/.ssh на удаленном сервере и, наконец, (как указывает Ян-Эрик Ревсбех), разрешения на локальный и удаленный ~/.ssh должны запрещать другим, читающим его.

Если вы скопируете свои ключи ssh-copy-id remote-server, то оба источника и разрешения на удаленной системе будут установлены правильно. Тем не менее, вам все равно потребуется ввести пароль в первый раз.

+0

Очевидно, что ssh-copy-id не работает Терминал Mac .. Есть ли альтернатива этому? – ytrewq

+0

Что вы делаете, это альтернатива, но на пульте дистанционного управления вам нужно войти в систему с помощью пароля и 'mkdir .ssh; chmod 700.ssh; touch .ssh/authorized_keys; chmod 600.ssh/authorized_keys' перед запуском вашей команды. –

+0

*** SOOOOOOOO *** намного проще, чем убедиться, что все разрешения настроены правильно !!! – n0nag0n

Смежные вопросы