菜单

Mac上使用ssh远程连接免密登录Linux服务器

Juning
发布于 2019-09-03 / 1351 阅读
1
0

Mac上使用ssh远程连接免密登录Linux服务器

说明:一般来说,想要连接远程 VPS 服务器,我们会在终端执行ssh username@hostname这个命令,然后输入密码来登陆,才能对远程服务器进行操作。
假如一天需要多次登录服务器,就需要反复输入很多遍密码,而像 Xshell 这样好用的软件并没有 Mac 平台的版本。每次都去翻邮件查看并复制相应的密码非常麻烦,所以咱们懒人还是配置一下免密登录服务器吧!

一、Mac下的操作

  1. 进入~/.ssh目录
    在终端中输入下面的命令,进入本地~/.ssh目录。
cd ~/.ssh
  1. ~/.ssh目录中生成公钥和私钥
ssh-keygen -t rsa

然后一路按回车来忽略它让你输入的个人信息,就可以在本地的~/.ssh目录中生成私钥文件id_rsa和公钥文件id_rsa.pub

  1. 将Mac上创建的公钥id_rsa.pub上传到服务器

上传之前,我们要先登录远程 Linux 服务器,检查一下是否存在~/.ssh目录,没有的话就创建一个。

##查看是否有隐藏目录.ssh
ls -a

##有的话无需操作,没有的话就创建目录
mkdir -p ~/.ssh

然后回到 Mac 终端使用 scp 命令上传公钥文件:

##将公钥上传到Linux服务器的.ssh目录下
scp ~/.ssh/id_rsa.pub username@hostname:~/.ssh/

二、在远程Linux服务器下进行操作

  1. 使用cat将公钥添加到authorized_keys文件
##将公钥上传到Linux服务器的.ssh目录下
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 修改相应的文件权限
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

现在,我们可以在 Mac 的终端中使用 ssh 命令来登录服务器,发现此时已经不需要再输入密码了。

三、使用别名,更加便捷的登录远程服务器

  1. 进入编辑模式,按以下模板填写配置并保存
##进入本地~/.ssh目录
cd ~/.ssh

##创建登录配置文件
vim config

注意:#注释内容(包括#前的空格)需要删除,不然加载配置的时候可能会出现错误

Host               alias #自定义别名,可自行修改
HostName           hostname #替换为你的ssh服务器ip或domain
Port               port #ssh服务器端口,默认为22
User               user #ssh服务器用户名
IdentityFile       ~/.ssh/id_rsa #之前生成的公钥文件对应的私钥文件
  1. 在 Mac 终端中,通过输入ssh+别名就可以很方便的免密远程登录Linux服务器了!
ssh alias

解决Host key verification failed.问题

ssh访问远程服务器的时候,出现了以下提示:

ECDSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.

一般这个问题,是你重置(重装系统)过你的服务器后。你再次想访问会出现这个问题。

解决方法也很简单:

ssh-keygen -R 你要访问的IP地址

例如:

ssh-keygen -R 192.168.0.25

这个命令目的是清除你当前机器里关于你的远程服务器的缓存和公钥信息,注意是大写的字母“R”。

文章来自:Mycheol’s Blog


评论