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

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服务器。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值