首页 > 其他 > 详细

SSH公私钥连接(免密)

时间:2021-06-08 17:03:21      阅读:12      评论:0      收藏:0      [点我收藏+]

基于密钥的安全认证

用户登录远程主机需要持有“公钥/私钥对”,远程服务器持有公钥,本地持有私钥。

客户端向服务器发出请求。服务器收到请求之后,先在用户的主目录下找到该用户的公钥,然后对比用户发送过来的公钥。如果一致,服务器用公钥加密“质询”并发送给客户端。客户端收到“质询”后用私钥解密,再发还给服务器。认证结束。

生成 ssh-key,选加密算法(rsa、dsa),给秘钥命名(可选):

$ ssh-keygen -t rsa -C "name"

passphrase 是证书口令,以加强安全性,避免证书被恶意复制。

会在 ~.ssh 下生成 id_rsa, id_rsa.pub 两个文件,分别是 私钥/公钥。

公钥需保存到远程服务器 ~/.ssh/authorized_keys 里,私钥由客户端本地留存。

要保证 .sshauthorized_keys 都只有用户自己有写权限。否则验证无效。

$ chmod -R 700 ~/.ssh/ 
$ chmod 600 ~/.ssh/authorized_keys 

ssh 配置的一些实践

$ vim /etc/ssh/sshd_config
# 修改以下三个字段
# RSAAuthentication yes 
#	PubkeyAuthentication yes 
#	AuthorizedKeysFile %h/.ssh/authorized_keys  

拷贝公钥至远程服务器

id_rsa.pub文件为本地机器的公钥,需要将其内容放置在远程服务器的/用户名/.ssh/authorized_keys文件中。

方法有两种:

  • ssh-copy-id user@remote

通过此命令可以直接将文件复制到对应用户的.ssh中,如果ssh不是默认端口可以添加-p port来自定义端口号。

  • 手动将文件内容导入

先使用scp将文件复制到远程主机上。

scp /Users/xxxx/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/root/

登录远程主机,将公钥访问认证key文件中。

cat /root/id_rsa.pub >> ~/.ssh/authorized_keys

重启ssh服务

scp、sftp都是基于ssh的协议,因此端口号与ssh均相同,默认为22。

$ service sshd restart
# 重启ssh服务使配置生效

如果不出问题的话,此时在本地主机终端上输入ssh root@xxx.xxx.xxx.xxx就会直接跳过输入密码,登入远程主机终端了。

SSH公私钥连接(免密)

原文:https://www.cnblogs.com/ningningjia/p/14862781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!