Mac终端配置免密码登陆云服务器

一、前言
个人购买了阿里云服务器,配置好远程连接密码和登陆密码后,使用iTerm2终端ssh root@ip,每次都需要输入密码,实在是麻烦。
 
ssh免密登陆,其实就是将本机的公钥存到服务器上,authorized_keys文件是Linux系统默认生成的用来保存远程登录设备的公钥。初始时为空,在.ssh目录下。
 
二、环境准备
1. 阿里云ECS服务器
2. macOS系统
3. 本机SSH公钥
(1)查询本地是否生成过
cat ~/.ssh/id_rsa.pub

如果没有,则继续执行(2)

(2)生成公钥
ssh-keygen -t rsa
或
ssh-keygen -t rsa -C "email地址"

说明:第二个引号内是邮箱mail,生成后可以作为Git远程仓库使用。该指令回车后需要输入键值对和密码,直接回车就行。

执行(1),查看是否公钥是否生成。
 
三、配置
下面提供了两种方法,二选一即可。
 
方法一
1. 如果是第一次配置,先查看远程服务器/home下是否有.ssh文件夹,如果没有,执行:
mkdir .ssh

如果有,该步骤跳过。

2. 将本机公钥文件上传至服务器
scp .ssh/id_rsa.pub root@ip:/home/.ssh

3. 添加公钥到authorzied_keys文件

cat id_rsa.pub >> .ssh/authorized_keys

4. 删除临时文件

rm id_rsa.pub

 

方法二
终端执行:
ssh-copy-id root@ip

输入登陆密码(即实例密码)即可。

配置成功信息如下:
Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'root@xxx.xx.xxx.xxx'"
and check to make sure that only the key(s) you wanted were added.

这里我使用的是方法二。需要说明的是,如果使用该方法,不需要查看服务器是否有.ssh文件夹。

四、测试
上面的方法二选一即可,终端执行ssh root@ip就可以执行免密码登陆了。
 
五、其他
在本机.zshrc中配置别名
alias[别名]=[指令名称]
如:
alias liulinde='ssh root@xxx.xx.xxx.xxx'

保存退出后,执行source .zshrc命令使改动生效。

 
回到终端,示例如下:
~ liulinde
Last failed login: Fri Apr 24 22:24:18 CST 2020 from 138.204.122.220 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Fri Apr 24 21:38:32 2020 from 117.100.126.53
Welcome to Alibaba Cloud Elastic Compute Service !

简单好记! 

posted @ 2020-04-24 23:50  TA写Java  阅读(656)  评论(0编辑  收藏  举报