呜啦啦免密登入服务器

Posted 罪途

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了呜啦啦免密登入服务器相关的知识,希望对你有一定的参考价值。

使用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. 愉快的玩耍吧~~

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

以上是关于呜啦啦免密登入服务器的主要内容,如果未能解决你的问题,请参考以下文章

呜啦啦免密登入服务器

呜啦啦呜Vim自动添加作者版权信息

呜啦啦呜Vim自动添加作者版权信息

呜啦啦呜Vim自动添加作者版权信息

呜啦啦乌拉利用python实现回收站

呜啦啦乌拉利用python实现回收站