密钥对连接
这里注意一点:客户端上传的公钥放在服务器端谁的目录下,就表示要以谁的账号来认证登录。
好处:1:不需要用密码登录
2:访问方便,用私钥可以在哪里都能登录。
步骤1
在本地linux主机上创建密钥,(也可以用密钥生成工具创建密钥)。
Enter file in which to save the key :直接回车
Enter passphrase :不需要 输入密码直接回车
Enter same passphrase again: 同样不需要输入密码直接回车。
查看创建好的密钥
/root/.ssh/目录里边看到创建的公私密钥
ls /root/.ssh/
id_rsa是密钥。
id_rsa.pub是公钥。
上传公钥到服务器端的 root家目录,表示如果用这个密码链接远程服务器,则登录到远程服务器以后就是root身份。
一种:scp -r /root/.ssh/id_rsa.pub ip:/root/.ssh/authorized_keys
二种:ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized_keys的权利
ssh-copy-id -i .ssh/id_rsa.pub 用户名字@ip,输入密码传入
三种:ssh-copy-id -u yonghu -i ~yonghu/.ssh/id_rsa.pub ssh 用户名字@IP地址 (第一次需要密码登录)
这是给yonghu赋予无密码登录权利
/usr/bin/ssh-copy-id: ERROR: No identities found 出现此类问题:
使用选项 -i ,当没有值传递的时候或者 如果 ~/.ssh/identity.pub 文件不可访问(不存在), ssh-copy-id 将显示上述的错误信息 ( -i选项会优先使用将ssh-add -L的内容)
在服务器端手工建立 .ssh目录(如果.ssh目录不存在)。
把 id_ras.pub 添加到 .ssh目录下的authorized_keys。
并修改该文件的权限为600除了root其它用户不允许操作。
步骤2
在远程服务器端修改/etc/ssh/sshd_config文件,按一下设置:
PubkeyAuthentication用来设置是否开启公钥验证,如果使用公钥验证的方式登录时,则设置为yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile用来设置公钥验证文件的路径,与PubkeyAuthentication配合使用,默认值
测试
本地linux服务器登录测试 ssh IP