呜啦啦、免密登入服务器

本文介绍了两种通过SSH实现服务器免密登录的方法:一是使用sshpass指令,通过在.bashrc文件中设置别名实现快速登录;二是利用SSH公钥认证,通过在服务器和本地设备上配置authorized_keys文件实现无密码登录。详细步骤包括安装sshpass、生成SSH密钥对、配置别名等。这两种方法能提高服务器管理效率,确保安全连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SSH命令登录服务器时,每次总要重新输入密码,挺糟心的,利用sshpass指令或SSH公钥实现免密

两种方法实现免密登入服务器,目前在用的是第二种,但是由于第一种方便实现,也顺便说下

以下操作基于Linux

免密登入服务器

1. 第一种方法,利用sshpass指令,实现提前确认密码,直接登入服务器。
  • 先对sshpass进行安装,命令如下:
$ sudo apt-get install sshpass
  • 安装成功后,即可使用。格式如下
$ sshpass -p "passwaord" ssh -X username@hostname
  • 但是仅仅这样,远远不够方便。进入home目录下的.bashrc文件,加入一行指令,内容如下:
alias ss1='sshpass -p "12345678" ssh -X username@hostname1'
alias ss2='sshpass -p "12345678" ssh -X username@hostname2'
  • 其中,12345678是登入服务器所需的密码,username是指登入服务器所用的用户名,hostname则是服务器的名字或者IP地址。
  • 修改完bashrc文件后,记得source以下,以使修改生效。
$ source ~/.bashrc
  • 完成source之后,我们就可以利用ss1ss2等指令快速地登入服务器,且不需要重新输入密码。
$ ss1
#or
$ ss2
  • 但第一次登陆服务器直接使用sshpass指令,可能会出现失效。所以第一次登陆服务器时,我们需要使用原始指令ssh登录一次服务器,才可以使用sshpass指令。
$ ssh -X username@hostname1
  • 大功告成,可以愉快的玩耍了~~~下面介绍第二种方法:
2. 第二种方法,利用SSH key公钥登入服务器。

在此之前先介绍各服务器间进行免密登录的操作,再介绍由本地设备免密登录服务器。

各服务器间的免密登录
  1. 登录到任何一台服务器。(只有一台的话,那就登录仅有的一台吧)
  2. 检查服务器之前是否已经存在SSH key,避免覆盖。执行ls -al ~/.ssh/id_rsa.pub指令,如果pub文件存在,请跳过第三步,直接前往第四步。
  3. 没有pub文件,则需要生成一个。
$ cd ~/.ssh
$ ssh-keygen -t rsa -C xxx@mail.com -f id_rsa

执行上述命令,看到以下两项直接回车即可

Enter passphrase:
Enter same passphrase again:

  1. 前往.ssh目录cd ~/.ssh,执行该指令即可cat id_rsa.pub >> authorized_keys
  2. 大功告成,以后各服务器间,直接输入ssh -X username@hostname即可。
  3. 但是,我们仍然可以利用alias指设置更快捷的指令。前往服务器的bashrc文件,添加以下内容。
alias ss1='ssh -X username@hostname1'
alias ss2='ssh -X username@hostname2'
  1. 利用ss1ss2等指令便可以快速地切换服务器,特别好用!!注意,以上七步操作均基于服务器。
  2. 下面介绍由本地设备如何登入服务器。
本地设备至服务器的免密登录
  1. 和在服务器中的操作类似,首先检查本地设备是否存在SSH key。执行ls -al ~/.ssh/id_rsa.pub指令,如果pub文件存在,跳过第三步,直接前往第四步。
  2. 没有pub文件,则需要生成一个。
$ cd ~/.ssh
$ ssh-keygen -t rsa -C xxx@mail.com -f id_rsa

执行上述命令,看到以下两项直接回车即可

Enter passphrase:
Enter same passphrase again:

  1. 执行cat指令,查看key文件内容cat ~/.ssh/id_rsa.pub
  2. 将第四步指令生成的一大串字符复制到任一服务器的authorized_keys文件中。(注意,这是服务器的文件,位置~/.ssh/authorized_keys
  3. 利用alias指设置快捷指令。前往本地设备的bashrc文件,添加以下内容。
alias ss1='ssh -X username@hostname1'
alias ss2='ssh -X username@hostname2'
  1. 利用ss1ss2等指令便可以快速地登入服务器,非常好用!!注意,以上七步操作,除第五步是在服务器与本地设备之间进行复制操作外,其它操作均基于本地设备。。
  2. 愉快的玩耍吧~~

如果您在实际使用中出现问题或者有更好的解决办法,欢迎留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

___Leo___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值