用文本密码经常遇上被网络上扫端口撞库被入侵服务器的越来越多,不建议使用文本密码登录ssh,用key登录ssh大大的提高了安全性, 其实这也是一个老生常谈的问题了。
SSH KEY有什么用?
凡是使用到ssh协议的都可用key进行验证,ssh scp rsync git等等。
SSH KEY有什么好处?
不用文本密码直接免去系统密码直接登录,可以给key设置私有密码确保安全性。
生成ed25519的key
ssh-keygen -t ed25519 -C "your_email@example.com"
生成RSA的key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
现在的新版windows也自带openssh-client,在windows下使用ssh-keygen命令像Linux一样生成一个私有的key也非常简单。
windows为例子生成key
Microsoft Windows [版本 10.0.26100.4349]
(c) Microsoft Corporation。保留所有权利。
C:\Users\86\>ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\86/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\86/.ssh/id_ed25519
Your public key has been saved in C:\Users\86/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:uwzbe9Z32n3cNE9heXGxXSVrMEnqxTTOOpTzeXL2ii8 86@DESKTOP-12B3R95
The key's randomart image is:
+--[ED25519 256]--+
| .*...=|
| B.+ +=|
| = = o.=|
| o = o +.|
| S + + = o|
| . . = oo|
| . . . +=|
| = .o E..oB|
| . =+ .++o+|
+----[SHA256]-----+
windows下ssh-keygen默认ed25519加密方式(另外还有几种加密方式 ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa ,可以根据自己喜好选择), 第一步会提示保存路径,第二步passphrase会提示让你设置密码(也可以默认直接回车),第三步重复密码。
之后会生成两个文件C:\Users\86/.ssh/id_ed25519和C:\Users\86/.ssh/id_ed25519.pub保存好, id_ed25519是私钥在本地作为凭证,其中id_ed25519.pub就是公钥用在服务器上 路径是~/.ssh/authorized_keys
用记事本查看公钥内容
notepad C:\Users\86/.ssh/id_ed25519.pub
设置成脚本方便随时调用
#!/bin/bash
mkdir -p /root/.ssh/
cat >>/root/.ssh/authorized_keys<<EOF
替换成你的公钥内容
EOF
把脚本托管到网站上面方便随时调用
curl -SL 86.sb/key.sh|bash
登录验证
ssh root@服务器IP
如果key设置了passphrase,输入你的私有密码,没有设置passphrase则直接进入服务器了。