2015-05-05 3 views
3

Я пытаюсь SSH в Debian из Ubuntu. У меня уже есть ключ RSA; это тот самый ключ, который я использую, получил мой Git.SSH Разрешение отклонено (publickey)

Я скопировал ключ из Ubuntu в Debian с помощью:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 

Тогда я изменил sshd_config на Debian включать в себя следующее:

RSAAuthentication да

PubkeyAuthentication да

PasswordAuthentication no

И я перезапустил службу SSH. Теперь я пытаюсь SSH в Ubuntu с помощью

ssh -v [email protected] 

, но я получаю следующее:

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for * 
debug1: Connecting to 10.0.1.64 [10.0.1.64] port 22. 
debug1: Connection established. 
debug1: identity file /home/koushatalebian/.ssh/id_rsa.pub type 1 
debug1: identity file /home/koushatalebian/.ssh/id_rsa.pub-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-8 
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4+deb7u2 
debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH* compat 0x04000000 
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: sending SSH2_MSG_KEX_ECDH_INIT 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ECDSA e2:af:83:f8:df:e2:15:db:77:30:e1:6b:e7:dc:77:99 
debug1: Host '10.0.1.64' is known and matches the ECDSA host key. 
debug1: Found key in /home/koushatalebian/.ssh/known_hosts:10 
debug1: ssh_ecdsa_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: /home/koushatalebian/.ssh/id_rsa.pub 
debug1: Authentications that can continue: publickey 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

Я в основном хотят, чтобы заставить SSH происходить только посредством аутентификации ОткрытыйКлюч.

Я прочитал все другие сообщения, связанные с этой темой, и никто из них не работал для меня. Вот почему я создал это как отдельный пост.

EDIT

Изменение StrictModes от yes к no в sshd_config исправили проблему. Это безопасно?

EDIT 2 Это журнал для SSH на сервере:

May 5 18:23:55 lemaker sshd[2591]: Connection from 10.0.1.37 port 42748 
May 5 18:23:55 lemaker sshd[2591]: debug1: PAM: setting PAM_RHOST to "10.0.1.37" 
May 5 18:23:55 lemaker sshd[2591]: Failed publickey for root from 10.0.1.37 port 42748 ssh2 
May 5 18:23:55 lemaker sshd[2591]: Connection closed by 10.0.1.37 [preauth] 
+0

Вы пытаетесь пройти аутентификацию с помощью ** открытого ключа **. Вы должны использовать свой ** закрытый ключ ** - обычно тот, у которого нет расширения. –

+0

Что это за настройка? «PermitRootLogin yes» – Hankster

+0

Отключение «StrictModes» - это, вероятно, плохая идея, так как это означает, что у вас есть ключевой файл, который, по мнению ssh, недостаточно защищен разрешениями, которым нужно доверять. В любом случае вы можете доверять ему, но вы делаете это на свой страх и риск.Вероятно, лучше найти файлы, которые ему не нравятся, и установить права на них. –

ответ

3

Вы не хотите предложить .pub как ваши учетные данные. Вы хотите использовать свой закрытый ключ на вашем конце, так что вы, вероятно, следует делать

ssh -v -i ~/.ssh/id_rsa [email protected] 

, которая является ключом deault использовать, так что вы можете просто оставить от на -i флаг вообще

Кроме того, убедитесь, у вас есть PermitRootLogin yes, если вы собираетесь входить в систему с правами администратора через ssh

+0

Готово и сделано, но по-прежнему такая же проблема. – Kousha

+0

Держись, поэтому я изменил 'StrictModes' на' no', и теперь он работает. Все хорошо? – Kousha

+0

Возможно, вы должны дважды проверить, какие разрешения находятся на ваших ключах, вы хотите, чтобы 600 на вашем личном ключе и 644 на открытый ключ. И на сервере вы захотите 644 на authorized_keys и что каталог '.ssh' на каждом из них - 700 –

0

Я бы выбрал новую пару ключей и использовал ее вместо этого. Это просто проверяет содержимое локально, но просто загружает каталог .ssh и помещает его на удаленный сервер, чтобы сделать двухстороннюю ssh возможной, если вы хотите только одностороннюю, тогда не имеете открытого ключа в файлах authorized_keys :

$ pwd 
/home/testuser 
$ ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/testuser/.ssh/id_rsa):[ENTER] 
Created directory '/home/testuser/.ssh'. 
Enter passphrase (empty for no passphrase):[ENTER] 
Enter same passphrase again:[ENTER] 
Your identification has been saved in /home/testuser/.ssh/id_rsa. 
Your public key has been saved in /home/testuser/.ssh/id_rsa.pub. 
[...] 
$ cd .ssh 
$ ls -l 
total 8 
-rw------- 1 testuser testuser 1679 May 5 13:49 id_rsa 
-rw-r--r-- 1 testuser testuser 401 May 5 13:49 id_rsa.pub 
$ cat id_rsa.pub >> authorized_keys 
$ ssh 127.0.0.1 
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. 
ECDSA key fingerprint is 0f:dd:ed:e3:bf:a1:c8:3f:fd:b2:0d:e8:1f:ee:29:f8. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts. 
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-36-generic x86_64) 
[...] 
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by 
applicable law. 

$ exit 
Connection to 127.0.0.1 closed. 
Смежные вопросы