配置远程服务器的ssh免密登录 + ssh别名设置

配置远程服务器的ssh免密登录 + ssh别名设置(踩坑指南)#

一、 需求简介

经常连接 ssh 的同学都会有一个苦恼就是每次ssh连接远程主机的时候都要手动输入完整的 ssh username@servername -p sshport 命令,之后还要输入ssh的密码才能连的上我们的远程主机。这样的过程在需要频繁的连接远程主机的时候还是比较让人头疼的,所以今天我就简单介绍下如何通过一条指令方便快捷的ssh免密登录。主要就是为远程主机设置别名,然后设置免密登录。

二、SSH设置别名访问远程服务器

一般使用ssh访问远程服务器的命令是:ssh username@ip地址, 例如:ssh root@1.1.1.1,然后输入密码访问。ip地址不好记是一方面是,容易敲错是另外一方面,设置别名就可以解决这样的问题,设置别名之后,我就可以直接通过ssh [别名]
的方式来直接连ssh了。

进入~/.ssh 目录,查看是否有名为config的文件,如果没有直接创建一个,然后修改config文件为远程主机起 别名

vim ~/.ssh/config

config 文件的编写可以参考下面

Host vps
HostName 1.1.1.1
User root
Port 22

这样我就为1.1.1.1主机的起了别名vps, 按照上面这种配置文件配置成功之后我运行ssh vps 命令就和运行ssh root@1.1.1.1 -p 22 命令是一样的效果了。
wq保存退出。

看下效果:

root@Conners:~/.ssh# ssh vps
root@1.1.1.1's password: 

提示我们输密码登录了,说明别名配置成功了,接下来我们来设置免密登录。

三、ssh免密登录配置

首先明确下关系,假设我使用的主机为A, 需要远程ssh免密登录的主机为B。

在A主机上生成密钥对, 输入ssh-keygen -t rsa 然后一路默认就好了

root@Conners:~/.ssh# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GdIYM9AQdOegRDxMFNaXzpsVxA3s2AiJpCqQ0n+aY5M root@Conners
The key's randomart image is:
+---[RSA 2048]----+
|   O&O*..=qq     |
| o +=o=Xo + .    |
|+ o . o=+= .     |
|o. .   .=o+      |
|o   . . S+       |
|.    =  o        |
|    E            |
|   . o           |
|                 |
+----[SHA256]-----+

这时~/.ssh/ 目录下应该多了几个文件

root@Conners:~/.ssh# ls
config  id_rsa  id_rsa.pub  known_hosts

打开 id_rsa.pub 文件,从ssh-rsa开始完整的复制整个文件内容,备用

root@Conners:~/.ssh# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLI+y4irmSYFbQ5eb/2KYnh0PMSUoT04ED/fSxZvpTA7ou1g03IxUin6+m3fsznDnymELY1LoqLe+Di0prCwqEyH0/kHw+vhBIjWC0xA/EGHcR7FbMv2U2vSglALoOgZnPeSSXsCJiAe8hQ933KZ6MivHzQKjb5q3E+4JRSSZDnx6ASy0/SpUyTzwbB/DsAoDXFqc9FnUWHpOUndOu9Xez1ktg82UoeLts/1q6CFSi8W9wY6B9Ti96ECV8NdwFyAmqJx3indgQoPkUiech/iCWvyE8C8TVuWMsLhETmm+2Eq/pSnNxBnC/+N8pk8gKBHmcXC/zeL3DL/R1Omg5m1Cx root@Conners

先手动输入密码连接上主机B,将刚才的内容复制到 ~/.ssh/authorized_keys 文件的最后,如果没有这个文件,就创建一个之后再复制进去,保存退出。

在主机A上执行ssh-copy-id 主机B用户名和主机名,如ssh-copy-id root@192.168.1.11
然后输入密码登录一遍,输完密码就会提示你可以试试免密登录了。

在主机A上尝试ssh连接主机B, 看是否已经可以成功免密登录了,如果是,那么恭喜你, 你可以关了我的这个博客页面,心情好的话可以给个赞再走QAQ;如果还没成功,老哥,继续看看四吧。

四、解决一些小问题!!


如果配置好ssh公钥还不能免密登录的的话,检查一下主机B的配置文件

vim /etc/ssh/sshd_config

看下这三行是不是被注释了,如果是,就取消注释,

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

再试下成功没,没成功继续往下看

root@Conners:~/.ssh# ssh vps
sign_and_send_pubkey: signing failed: agent refused operation
root@45.78.64.125's password: 

如果报错sign_and_send_pubkey: signing failed: agent refused operation,在主机a继续执行下面的命令

eval "$(ssh-agent -s)"
ssh-add

最后再来试下

root@Conners:~/.ssh# ssh vps
[root@host ~]# 

成功了!!完结撒花

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值