通过密钥 SSH 登录设置

理解:

1. 一直以来都是通过密码远程 ssh 登录到 linux服务器
2. 最近学习 Docker 总是看到大家都设置成密钥方式登录
3. 除了密码被破解的风险之外,到底还有哪些好处?

4. 看到有个文章写到:如果有员工离开,只需要删除他的公钥,这还有点儿用!
5. 但是密码还是要修改的吧!改密码和删除公钥,哪个更直接有效?

测试环境、测试目标

linux 客户端(192.168.1.191): 环境: VisualBox虚拟机 ubuntu 18.04 Server
Mac 客户端 (XXXXXXXXXXXXXX):
Windows 客户端(192.168.1.174): 环境: VisualBox虚拟机 Win10

服务端(192.168.1.192): 环境: VisualBox虚拟机 ubuntu 18.04 Server

目的:使用密钥方式ssh登录到 192 服务器

方式说明:

1. 有些文章介绍的都是从服务端创建好私钥、公钥,然后下发给客户端,也是可以实现的
2. 我这里将私钥、公钥的生成交给客户端生成
3. 我认为客户端自己负责生成私钥、公钥,再将公钥交给管理员上传(或编辑),利于控制和管理

检测、安装 sshd

ps -ef |grep sshd
一般安装过程最后会提示安装那些组件,如果忘记了选择 openssh-server
只好在这里重新安装一次

sudo apt-get install openssh-server

服务端 sshd 配置修改

1. 修改 sshd_config
sudo vim /etc/ssh/sshd_config 修改以下 4 处

# by wzh 20190114 yes--no
StrictModes no

# by wzh 20190114
PubkeyAuthentication yes

# by wzh 20190114
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2

# by wzh 20190114 yes ---no ,can not use password to SSH
PasswordAuthentication  no
** 这一处最好等测试密钥方式正确之后,再单独修改!

2. 建立公钥key 保存文件
sudo mkdir .ssh
cd .ssh
sudo touch authorized_keys
sudo vim authorized_keys 
加入 pubkey

3. 重启 SSHD
sudo systemctl restart sshd

1、从 linux ssh 到 linux

1. 在 191 客户端 上建立密钥对
	ssh-keygen
	简单起见,一路回车!passphrase 也是空着!

2. 确认公钥私钥文件是否生成
	ls
	authorized_keys  id_rsa  id_rsa.pub
	
3. 上传 191 自己的公钥到 192
	ssh-copy-id -i ~/.ssh/id_rsa.pub  dhbm@192.168.1.192
	或者直接在当前目录
	ssh-copy-id -i id_rsa.pub  dhbm@192.168.1.192
	
	返回结果如下:
		/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
		The authenticity of host '192.168.1.192 (192.168.1.192)' can't be established.
		ECDSA key fingerprint is SHA256:7CHsZoFn6YJ7RInEerqfKmKc0dw/TGpRK0Tca8piTCI.
		Are you sure you want to continue connecting (yes/no)? 

4. 测试一下
	ssh dhbm@192.168.1.192
	因为之前是密码方式,第一次可能还会要求输入密码
	Ok

5. 删除测试
	在 192 服务器上 cd .ssh ,rm authorized_keys
	这是我自己测试,只有一个用户,可以简单删除 authorized_keys 文件
	如果多人操作,只能打开 authorized_keys 文件,删除对应的记录
	authorized_keys wen jian文件内容如下图:

$ ll
	total 24
	drwx------  2 dhbm dhbm 4096 Jan 11 17:15 ./
	drwxr-xr-x 15 dhbm dhbm 4096 Jan 11 17:15 ../
	-rw-------  1 dhbm dhbm  401 Jan 11 17:15 authorized_keys
...
再次 测试 191 ssh 到 192
	ssh dhbm@192.168.1.192
	dhbm@192.168.1.192's password: 
** 回到了之前的密码方式
** 等确认一段时间之后,再来去掉密码方式登录

6. 重复以上 ssh-copy-id 再来!这次就不要再删除了!

2、从 Mac 客户端到 192 服务器

1. 和以上 Linux 操作一样的次序,在 Mac 上建立密钥对
ssh-keygen 
返回结果:
	...
	Your identification has been saved in /Users/dhbm/.ssh/id_rsa.
	Your public key has been saved in /Users/dhbm/.ssh/id_rsa.pub.

1. 上传 Mac 的公钥到 192 服务器
	ssh-copy-id -i ~/.ssh/id_rsa.pub  dhbm@192.168.1.192

3. ssh 测试
	ssh dhbm@192.168.1.192

3、从 Mac 到 192 上的 Docker (非 22 端口)

1. 按照网上搜索到的方法(直接 cd .ssh 目录下操作)
ssh-copy-id -i id_rsa.pub  "-p 10033 root@192.168.1.192"
返回错误:
	/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
	-f: force mode -- copy keys without trying to check if they are already installed
	-n: dry run    -- no keys are actually copied
	-h|-?: print this help

2. 去掉引号
ssh-copy-id -i ~/.ssh/id_rsa.pub  -p 10033 root@192.168.1.192
ok!

4、从 Windows putty 到 192 服务器

1. 下载 putty 和 putty gen
	下载地址很多,我是从 CSDN 下载的
	https://download.csdn.net/download/baolang00/10529977

2. 首先打开 putty gen生成 公钥私钥
	** 生成的时候非常慢,头几次不知道技巧的时候,每次都等待了将近 40 分钟!
	** 技巧: 看到进度条,没事就在下面的空白处点鼠标!点鼠标!!点鼠标!

3. 保存私钥、key 和 公钥
	1)、保存私钥 : 必须
	2)、复制保存key:必须
	3)、保存: 非必须

4. 将以上 key 内容发送给管理员,上传(直接编辑粘贴)到服务器
	** 客户端保存之后文件夹内容如下

** 服务端加上公钥之后如下

5. 开始 putty SSH 连接
	1)、设置登录账号

	2)、加载自己的私钥

	3)、保存本次会话(Session)

** 可以在测试成功之后,重新操作一次的时候保存
** 后续操作就可以直接加载(load)

4)、成功的话,就如下图,直接进入了服务器

5. 错误处理:总是看到 server refused our key

	修改 192 服务端 sshd 配置(vim /etc/ssh/sshd_config)
	** 之前都是 linux 之间操作,所以,都是严格模式 (StrictModes )
	
	1)、#StrictModes yes 去掉注释,改成 StrictModes no
	2)、#PubkeyAuthentication yes 去掉注释,改成 PubkeyAuthentication yes
	3)、#AuthorizedKeysFile .ssh/authorized_keys 改成 AuthorizedKeysFile .ssh/authorized_keys
	4)、保存退出,重启 sshd

转载于:https://my.oschina.net/u/1440971/blog/3000419

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值