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

来源:互联网 发布:js引用 编辑:程序博客网 时间:2024/05/01 19:34

ubuntu 启用ssh服务比较简单,但是使用证书免密码登录,有点麻烦,但是原理还是比较清晰的;
以下示例中ubuntu16上测试通过。

一:服务器安装 ssh 服务

安装

sudo apt install openssh-server

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

sudo /etc/init.d/ssh restart

二:客户端登录

如果没有安装ssh客户端,默认已安装

sudo apt install openssh-client

使用用户名和密码登录

ssh server_ip -l username

或者

ssh username@server_ip

三:使用证书免密码登录

1、在要登录的客户端创建key

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

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

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

将前面的 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 gituser1@server_ip

5、客户端一般不会只ssh这一个服务器,修改gituse1的私钥名称

~/.ssh/id_rsa 改名

sudo mv ~/.ssh/id_rsa ~/.ssh/id_rsa_gituser1_svr1

登录命令相应调整为

ssh -i ~/.ssh/id_rsa_gituser1_svr1 gituser1@server_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 gituser1@usvr1    我们还可以在config文件中加入其他ssh服务器。

如果对你有用,请赞助我一点咖啡豆
请我喝咖啡吧

0 0
原创粉丝点击