【ssh秘钥认证】

ssh简介:

ssh可以基于密码进行认证,也可以基于密钥去认证用户,基于密钥认证时可以实现免密码登录的效果。

ssh秘钥生成:

直接执行ssh-keygen命令,会进入交互模式,并等待用户输入生成密钥文件的路径,在不输入任何路径的情况下,私钥与公钥默认生成在当前用户家目录下的 .ssh 目录中,如下图所示,因为当前系统账户为root,所以,默认生成密钥路径为/root/.ssh/id_rsa,如果不指定其他路径,直接回车即可,如果对应目录下已经存在了同名的密钥文件,还会提示你是否覆盖,在没有搞清楚是谁的密钥之前,最好不要覆盖,否则可能会导致私钥的丢失,下图中的情况为第一次生成密钥的情况,所以对应目录下并不存在同名的密钥,我们直接回车即可,随后,出现了Enter passphrase(输入密码)的提示,为了安全起见,我们可以为生成的私钥设置密码,如果为私钥设置了密码,在每次使用私钥的时候,都会提示我们输入私钥的密码,直接回车,代表不为私钥设置密码,Enter same passphrase again表示确认密码,如果上一步没有输入密码,此处直接回车即可。

在这里插入图片描述
现在,我们已经拥有了自己的私钥与公钥,但是,我们并没有把公钥交给任何人,所以,其他人还无法利用我们的公钥对我们进行认证。

比如,我现在所在的服务器IP为10.1.0.1,我想通过10.1.0.1中的ssh客户端连接到10.1.0.3的zsy账户中,那么,我可能会执行如下命令。
在这里插入图片描述
正如上图所示,10.1.0.3的zsy账户要求我输入密码,我必须输入10.1.0.3的zsy账户的密码才能够登录,有可能在某些场景下,你需要自动连接到10.1.0.3,比如在执行自动化的脚本的时候,所以,我们我要有一种方法,可以不用每次输入密码,也可以进行认证登录。

没错,聪明如你,一定想到了,我们需要把自己的公钥交给10.1.0.3的zsy账户,这样,zsy账户就能够通过我们公钥对我们进行身份认证了,于是,我现在需要做的就是把公钥交给10.1.0.3的zsy账户,我们可以使用一条命令,完成交付公钥的操作,这个命令就是ssh-copy-id

通过如下命令,可以将本机上指定的的公钥交给10.1.0.3的zsy账户

ssh-copy-id -i ~/.ssh/id_rsa.pub zsy@10.1.0.3

使用"-i"选项指定要传输的公钥,然后指明账户与IP地址,如下图所示,传输公钥时,要求我们输入zsy账户的密码,因为我们必须要知道密码,才能合法的连接到zsy账户啊,当然,这种密码验证只需要进行一次即可。

在这里插入图片描述
输入zsy用户的密码后,会出现类似如下提示
在这里插入图片描述

提示我们已经添加了1个密钥,并且提示我们尝试使用’ssh zsy@10.1.0.3’进行验证。

好了,完成上述步骤后,以后再从10.1.0.1的root账户连接10.1.0.3的zsy账户,就不用输入密码了

相当于在远程机器上的 .ssh/authorized_keys 里面增加了公钥

别名:

如果拥有多个 ssh 账号,要记住每个ssh 账号的参数,那是多么蛋疼的事情。
还好,ssh 提供一种优雅且灵活的方式来解决这个问题,就是利用 ssh 的用户配置文件 config 管理 ssh 会话。ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config 以及 /etc/ssh/ssh_config,不存在则新创建一个),其配置写法如下:

Host yoursite   (别名,ssh yoursite 直接登录)
HostName yoursite.com (也可以是端口号)
User yourname  (登录账户,类似ssh root@xxxx 中的root)
Port 22
IdentityFile ~/.ssh/id_rsa_site   (id_rsa私钥)
IdentitiesOnly yes

现在就可以使用简短的名字来登录了,而且可以添加多个目标的话,用空行隔起来就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值