简言
这里说的免密登陆指的是:
在服务器serverA 上免密码登录到服务器serverB上,用户和密码都是serverB上的,只是在serverA上登陆serverB时,不需要输入密码
免密登陆配置
第一步:生成公钥,私钥
使用命令 ssh_keygen 在用户的根目录下的.ssh目录中生成自己的公钥和私钥,执行命令 ssh_keygen时会出现几个询问,不用理会一路回车即可,如下图所示,
上述命令运行结束以后,在$HOME/.ssh/目录下
会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥文,后者是你的私钥。
比如我刚才用的是root用户,执行完ssh-keygen后就会在目录 /root/.ssh/ 下生成上面两个文件,如下图(如果ll命令看不到.ssh目录,可以用 ll -a 命令显示全部文件)
查看公钥文件如下
第二步:拷贝公钥到要登陆的远程主机
使用命令 ssh-copy-id -p port user@ip,把刚才的is_rsa.pub文件中的内容拷贝到指定服务器用户根目录下的.ssh文件夹下的authorized_keys文件中,中途需要输入一次密码,这也是最后一次输入密码,如下图
现在到目标服务器192.168.5.98上,打开文件 /home/yzf/.ssh/authorized_keys,可以看到其内容和刚才生成的公钥文件内容完全一样
第三步:免密登陆实验
使用ssh登陆命令登陆目标服务器,可以看到不用输密码,直接就登陆成功了
ssh创建别名
如果仅仅只是免输密码登陆,还是不够简单,毕竟每次还得记住账号,IP地址,输入一大串。如果一个命令,几个字符就能登陆上服务器就好了。还是上面的例子,如果能 ssh 98 就登陆到192.168.5.98机器就比较简洁,也就是说创建一个ssh别名
第一步:打开或新建/config文件
打开/root/.ssh/config文件,没有则新建该文件
第二步:配置ssh别名
添加ssh别名配置,如果有多个ssh别名,中间空一行即可
ssh格式为
Host xxxx
HostName xxxxxxxx
User xxxx
如下图,这里定位别名为98,即表示用来登陆192.168.5.98机器
第三步:别名测试登陆
配置好ssh别名,只用输入“ssh 别名”即可登陆到指定的机器上,以刚才98为例如下图