ssh初次与远程主机建立连接,一般有几个步骤:
1.本地生成密钥对:
ssh-keygen -t rsa #-t表示类型选项,这里采用rsa加密算法
然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。
2.将公钥复制到远程主机中:
ssh-copy-id 主机名@远程地址
使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中。
3.建立连接:
ssh 主机名@远程地址
报错Permission denied (publickey)
一、远程服务器问题
远程服务器~/.ssh文件夹及其文件权限不对,包括
1、authorized_keys文件权限
2、.ssh文件夹权限
3、.ssh文件夹所有权
需要设置权限,通过别的方式进入远程主机,然后进行如下操作:
更改文件所有权
$ chown -R your_user:your_user ~/.ssh
//我用root登录,your_user是root
更改文件夹权限
$ chmod 700 ~/.ssh
更改authorized_keys文件权限
$ chmod 600 ~/.ssh/authorized_keys
二、公钥没有添加
如果服务器端根本就没有添加公钥是断然不可能通过认证的
Solution:
通过其它方式登录到远程服务器,查看~./ssh/authorized_keys文件中是否添加了公钥,若没有可直接手动将公钥内容粘贴到该文件末尾。