笔记:Putty设置及使用公钥验证登录
本文最后更新于:2020-09-17
迁移Linux系列
Putty设置
Putty for Linux
刚开始没搞懂怎么用
后面终于会用了,给我的感觉就是把config
文件图形界面化
- 打开软件,中间一大栏,是选择
config
文件,可以Load
Save
Delete
- 有一个
Default Settings
,这个是Putty启动时默认加载的,也是创建其他config
文件的模板 - 添加SSH配置,需要填好
Host Name/IP address
Port
等参数,然后在Saved Sessions
下面的空白栏输入这个配置的名称,最后点击Save
按钮保存 - 后面如果要更改配置,需要先点击这个配置文件,点
Load
加载(相当于打开这个配置文件),更改完成之后,点击Save
(相当于保存文件)
先把Default Settings
配置好,之后创建新SSH配置会减少很多工作量
下面是我的一些基础配置
- Window
改窗口大小
默认的SSH窗口太小,在Columns
Rows
改成合适的大小 - Window ->> Selection
Ctrl Shift C/V
用Clipboard
,和终端一致 - Connetction
TCP keepalives
勾选这个,保持SSH登录始终在线
只勾选这个还不行,需要把上面的Sending of null packets to keep sessions active
,发送空数据包间隔时间填一个数值,比如4秒 - Connetction ->> Data
Auto-login username
填上登录用的用户名,登录时就不用手敲了 - Connetction ->> Proxy
这个墙国必备,不多说了
这些是我在Putty里的基础设置,剩下字体、颜色之类的随喜好来
(费了点时间才整好,不写下来太亏了
公钥验证登录
如果要实现真正的“一键登录”,可以设置公钥验证登录,既方便又安全,何乐不为
参考资料:
荒岛 - SSH那点事:公钥验证/两步验证/Fail2ban
Log in to a Linux server with an SSH private key on a Windows client
How To Use Putty with an SSH Private Key Generated by OpenSSH
我太菜了,看第一篇荒岛的教程没搞懂到底哪台是本地机,哪台是远程机,看了第二篇教程才搞懂
大概思路:
本地电脑生成一对密钥,私钥自己存好,公钥放到远程机器上,远程机器开启公钥认证功能
这样你用本地电脑登录的时候,远程电脑用公钥一看,这个电脑是熟人,放行
步骤:
- 本地电脑生成密钥对
ssh-keygen -b 4096
一路回车,生成一对密钥id_rsa
id_rsa.pub
第一个是私钥,保存好,第二个公钥,给别人
- 远程电脑开公钥认证功能
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys
在远程电脑上创建文件,记录密钥chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
改权限,不让别人看vim ~/.ssh/authorized_keys
把本地电脑的公钥写进去vim /etc/ssh/sshd_config
编辑sshd配置文件PubkeyAuthentication yes
开启公钥认证功能PasswordAuthentication no
(optional) 如果需要,可以关闭密码登录
systemctl restart sshd
重启sshd服务
- Putty配置密钥登录
puttygen
转换密钥
Putty不能直接使用RSA密钥文件,需要转为Putty专用格式,安装Putty时已经安装了转换工具,命令为puttygen inputfile -o ouputfile
在命令行输入puttygen ~/.ssh/id_rsa -o ~/.ssh/id_rsa_putty
转换本地电脑私钥文件- 验证方式选择密钥
Connetction ->> SSH ->> AuthPrivate key file for authentication
选刚才转换好的id_rsa_putty
,保存一下
现在就可以“一键登录”远程主机了
完结撒花
更新
2020/09/16 更新
本地电脑生成密钥对,这个步骤默认使用RSA算法
看网上说似乎ed25519
算法似乎安全性更高
ssh-keygen -t ed25519 -b 2048
,这样就可以用ed25519
类型的密钥
2020/09/17 update
How to Change Default SSH Port in CentOS 8
How To Change OpenSSH Port On CentOS 7
Need to allow SSH port(eg.2244) through the firewall
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0协议 。转载请注明出处~