Mac/Linux下配置远程Linux服务器免密登录


你还在为你每次打开测试环境生产环境需要登录而犯愁吗?
登录是必须的,但密码是可或缺的!!!

因为前两章讲到了Gitolite服务端的配置,配置客户端时是采用的SSH方式授权登录的Git Server,如果你看过我的文章应该对open-ssh有一定的了解,我们本章的内容同样也是需要open-ssh的支持。

本章目标

访问Linux/Ubuntu免密码SSH方式登录。

安装openssh-server

如果你的服务器并没有安装openssh-server需要执行下面的命令进行安装:

1
ubuntu@yuqiyu:~$ sudo apt-get install openssh-server

安装openssh-client

Mac系统自带openssh,所以不需要再次安装。
如果你是Linux系统作为client,执行如下命令安装:

1
client@other:~$ sudo apt-get install openssh-client

Mac下生成SSH KEY

打开Mac系统自带的终端,通过ssh-keygen命令来进行生成ssh key信息,命令如下所示:

1
ssh-keygen -t rsa

不需要自定义配置信息,所有的询问通过回车跳过即可。
生成的文件去了哪里?之前也讲过位置,在这里再简单的说下,默认的位置在当前用户根目录下的.ssh隐藏目录内:

1
2
3
4
// 执行查看命令
ls ~/.ssh
// 文件列表
id_rsa id_rsa.pub

远程Linux服务器授权公钥

先通过用户名密码的方式登录远程Linux服务器,把我们上一步生成的id_rsa.pub文件的内容复制到authorized_keys文件内,如下所示:

1
ubuntu@yuqiyu:~$ echo "公钥内容" >> ~/.ssh/authorized_keys 
  • 公钥内容:在上面命令中公钥内容就是生成的id_rsa.pub文件内容

测试免密登录

在本地终端输入如下命令测试是否可以直接连接到远程服务器

1
ssh ubuntu@192.168.1.75
  • ubuntu:访问远程服务器的用户名
  • 192.168.1.75:你的远程服务器的IP地址,根据实际情况而定

如果配置没有问题是直接可以访问到远程服务器的,这样是不是很简单?

SSH Config

那如果你感觉通过ssh user@ip的方式比较麻烦(因为平时服务器较多的情况下会出现记错的情况而导致无法登录),我们还有更简单的方式。

通过修改本机的.ssh/config文件可以进行配置访问远程服务器的基本信息,下面是我的配置:

1
2
3
4
Host owner
HostName 192.168.1.75
User ubuntu
IdentitiesOnly yes

配置文件保存退出,我们再次在终端输入如下命令进行测试免密登录:

1
ssh owner

发现同样可以免密进行登录,在这里的owner就是我们在~/.ssh/config配置文件的Host值,我们通过执行ssh ownerssh就会去找配置该ownerHost信息,然后再次访问远程服务器。

Mac/Linux下配置远程Linux服务器免密登录

https://blog.minbox.org/linux-without-password.html

作者

恒宇少年 - 于起宇

发布于

2019-09-29

更新于

2022-10-26

许可协议

评论