Ubuntu环境下SSH的安装使用以及使用证书免密码登录ssh服务器

2/13/2017来源:经验技巧人气:1942

Ubuntu 启用ssh服务比较简单,但是使用证书免密码登录,有点麻烦,大部分百度搜索出来的文档都没有把处理说清楚,但是原理还是比较清晰的; 以下示例中ubuntu16上测试通过。

一:启用 ssh 服务 安装

sudo apt install openssh-server

重启ssh服务(只有当修改 /etc/ssh/ssh_config 后,才需要重启),本示例中不需要修改该文件

sudo /etc/init.d/ssh restart

二:客户端登录 使用用户名和密码登录

ssh server_ip -l username

或者

ssh [email protected]_ip

三:使用证书免密码登录 1、在要登录的客户端创建key

ssh-genkey -P “” #-P 表示创建证书不使用密码

运行完成后将在 ~/.ssh/ 中产生 id_rsa id_rsa.pub 两个文件, 第二个文件是公钥,需要放到服务器相应ssh用户的 ~/.ssh/ 目录的 authorized_keys 文件中

客户端系统当前登录的用户和需要登录的ssh服务器账号用户不需要有任何对应关系,后面登录ssh服务器时,只需要传入这里生存的私钥的位置即可。

2、把 id_rsa.pub 文件拷贝出来,弄到 ssh 服务器上去 sudo nautilus #这样打开文档管理器才可以有root 权限,才可以从任意目录拷贝文件

3、转到 ssh 服务器 3.1 创建要使用 ssh 登录的用户,如果已创建,跳过 sudo adduser gituser1 #这里用gituser1示例

3.2 切换到gituser1用户创建 .ssh 目录 如果已经有该目录,跳过 su gituser1 cd ~ mkdir .ssh

3.3 导入公钥文件到用户的~/.ssh/authorized_keys 将前面的 id_rsa.pub 文件弄到 ~ 目录中 sudo mv ~/id_rsa.pub ~/.ssh/authorized_keys 如果 authorized.keys 文件已存在,将内容追加到该文件中 sudo cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

4、客户端使用证书免密码登录

ssh -i ~/.ssh/id_rsa [email protected]_ip

5、客户端一般不会只ssh这一个服务器,修改gituse1的私钥名称 将 ~/.ssh/id_rsa 改名 sudo mv ~/.ssh/id_rsa ~/.ssh/id_rsa_gituser1_svr1 登录命令相应调整为 ssh -i ~/.ssh/id_rsa_gituser1_svr1 [email protected]_ip

6、让ssh默认使用证书,不需要用i参数指定

6.1 方法一:修改 /etc/ssh/ssh_config 文件 sudo gedit /etc/ssh/ssh_config 加入以下代码段 IdentityFile ~/.ssh/id_rsa_gituser1 然后用ssh登录就不需要用 -i 参数指定证书了 这个方法是修改了全局证书, 日常使用中我们会通过ssh登录各个不同的服务器, 这显然是不行的,现在需要下面这个方法; 6.2 方法二:修改 ~/.ssh/config sudo gedit ~/.ssh/config 写入如下 host usvr1 HostName 192.168.11.202 port 22 IdentityFile ~/.ssh/id_rsa_gituser 以后就可以用下面命令登录 ssh [email protected] 我们还可以在config文件中加入其他ssh服务器。

如果对你有帮助,请微信扫一扫打赏。 这里写图片描述