月度归档:2022年11月

使用私钥方式SSH登录Linux服务器,免输入密码,免密码登录 2022-11-20

段落1、需求描述

开在公网的服务器,不管是Win还是Linux,常常会遭受到无聊的暴力破解攻击。这种情况下,自身密码如果复杂度是够的,也不必太过担心。不过,这种事情不胜其扰。要么通过防火墙过滤,要么就可以如题一般,配置Linux的SSH登录方式为私钥登录。

段落2、常见的算法格式

DSA(用于数字签名算法)的签名生成速度很快,验证速度很慢,加密时更慢,但解密时速度很快,一般仅用于签名。

RSA算法(可用于加密和数字签名)的安全性基于这样的事实,大整数的因式分解被认为是难以破解 ,而DSA安全性基于离散对数问题。今天已知用于分解大整数块的最快算法是通用数字场筛(可以理解为对简单合理筛或二次筛的改进算法),也是解决有限域中的离散对数问题的最快算法,该算法以DSA指定的大素数为模。

OpenSSH 7.0及以上版本默认禁用了ssh-dss(DSA)公钥算法。官方没有给出具体的解释,但其中可能有OpenSSH的DSA密钥位数生成的原因,同时生成签名时随机性差,可能会泄漏私钥,且以现在机算机的算力,DSA 1024-bit已经实际上可破解,建议不使用

ECDSA算法(椭圆曲线数字签名算法)

ECDSA是用于数字签名,是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。而ECC(全称Elliptic Curves Cryptography)是一种椭圆曲线密码编码学。

ECDH每次用一个固定的DH key,导致不能向前保密(forward secrecy),所以一般都是用ECDHE(ephemeral)或其他版本的ECDH算法。ECDH则是基于ECC的DH( Diffie-Hellman)密钥交换算法。

ECC与RSA 相比,有以下的优点:

  • 相同密钥长度下,安全性能更高,如160位ECC已经与1024位RSA、DSA有相同的安全强度。
  • 计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远 比RSA、DSA快得多。
  • 存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多, 所以占用的存储空间小得多。
  • 带宽要求低使得ECC具有广泛得应用前景。

一般来说,普通人,选用RSA的就可以,兼容性,安全性都够了。通常,RSA,DSA,ECDSA,EdDSA和Ed25519都用于数字签名,但只有RSA也可以用于加密。

Key typePublic key file namePrivate key file name
DSA~/.ssh/id_dsa.pub~/.ssh/id_dsa
RSA~/.ssh/id_rsa.pub~/.ssh/id_rsa
ECDSA~/.ssh/id_ecdsa.pub~/.ssh/id_ecdsa
Ed25519 (Edwards-curve DSA)~/.ssh/id_ed25519.pub~/.ssh/id_ed25519

几种常见的密钥对生成

ssh-keygen -t rsa -b 4096
ssh-keygen -t dsa 
ssh-keygen -t ecdsa -b 521
ssh-keygen -t ed25519
ssh-keygen -f ~/tatu-key-ecdsa -t ecdsa -b 521   # 指定生成的名称

如果针对我们需要生成SSH密钥对的场景,仅是登录服务器需求,默认长度2048即可,要安全可靠一点,长度可选4096。

使用如下的命令,即可生成密钥对,如果是在服务器VPS上执行,下载私钥后,务必把服务器上的私钥文件删除。下载到本地,记得控制私钥文件的访问权限。

段落3、实际落地操作命令

3.1、使用4096长度,生成一个密钥对

ssh-keygen -t rsa -b 4096

生成的文件,id_rsa,为私钥,需要保存在自己手里,保存好。

生成的文件,id_rsa.pub,为公钥,一般放在服务器VPS的 ~/.ssh/ 目录下。

3.2、复制公钥的字符串,到服务器的~/.ssh/目录下

创建目录,复制id_rsa.pub文件中的内容,追加写入到~/.ssh/authorized_keys文件中

mkdir -p ~/.ssh/
echo "public_key_string" >> ~/.ssh/authorized_keys   

# public_key_string 为你id_rsa.pub文件中的全部字符串内容

3.3、本地使用私钥登录服务器

3.3.1、如果本地也是Linux系统,命令行模式下

其中id_rsa文件的路径,我这里放在当前目录下,可选全路径

ssh -i ./id_rsa root@23.11.55.166

3.3.2、如果本地是windows系统,使用putty/XShell/FinalShell之类的图形界面客户端,则直接调用私钥文件即可。

假设使用putty登录,输入IP,点开右方SSH加号,点击Auth,点击Browse加载私钥后点击open即可。

段落4、关闭密码登录,仅用私钥登录(此章节的操作,为可选)

修改SSH服务器上的配置文件 /etc/ssh/sshd_config ,增加或者修改如下的参数的配置值

# 禁用密码登录
PasswordAuthentication no

# 启用私钥登录
RSAAuthentication yes
PubkeyAuthentication yes

# 允许root登录
PermitRootLogin yes

修改参数完成后,重启SSHD服务即可

systemctl restart sshd

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Donate
云乞讨

附录2、视频教程链接

000117. 免输入密码,使用私钥方式SSH登录Linux服务器 2022-11-20

本期博客地址 https://dasmz.com/?p=2898
本期视频地址 https://youtu.be/d9y9Kxl-4G0
博客地址 https://dasmz.com
Twitter  https://twitter.com/fdmove
Youtube  https://www.youtube.com/@DasmzStudio
全部视频的目录索引 https://dasmz.com/?p=1342

为Linux系统,添加IPv6地址 2022-11-09

段落1、需求描述

购买了 Inception Hosting 官网 https://inceptionhosting.com 这家的一台服务器,购买的2.5欧元/月的款式,配置规格如下

2 CPU Core (Equal Share)
1024 MB Ram
20 GB Pure NVMe SSD Disk space
3000 GB Bandwidth @ 1 gbit (shared)
1 x IPv4 address
1 x /64 IPv6

它是有 1个IPv6地址,和 /64个IPv6地址,那就太棒了,给的IPv6地址,非常富足,可以随意折腾了

如下操作示范,以 Inception Hosting 官网 https://inceptionhosting.com 官方给的Ubuntu 20.04 系统环境下,执行命令,其他操作系统类似。

一般而言,默认的系统模板初始化的Linux系统,已经有1个IPv6地址的,如果想要添加更多,就需要自己操作修改。

信息:

分到的IPv6地址段  2a04:92c7:abcd:481::1/64
网关 2a04:92c7:abcd::1

段落2、增加IPv6地址到VPS的Linux系统

先临时添加2个在它/64地址段的其他IP地址

/sbin/ip addr add 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
/sbin/ip addr add 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0

段落3、添加IPv6路由

/sbin/ip -6 route add 2a04:92c7:abcd::1 dev eth0
/sbin/ip -6 route add default via 2a04:92c7:abcd::1

其中的2a04:92c7:abcd::1是 2a04:92c7:abcd:0000:0000:0000:0000:0001的简写

可以测试一下,当前添加的2个IPv6地址,是否已通

段落4、删除IPv6地址

/sbin/ip addr del 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
/sbin/ip addr del 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0

段落5、配置持续生效的增加IPv6地址

修改 /etc/network/interfaces 文件,新增2行增加IP地址的命令,其中up参数表示网络启动后执行

up ip addr add 2a04:92c7:abcd:481::78bc/64 dev eth0
up ip addr add 2a04:92c7:abcd:481:2126:6232:4691:21f1/64 dev eth0
up ip addr add 2a04:92c7:abcd:481:5fe4:268e:d1b4:ece0/64 dev eth0
up ip -6 route add 2a04:92c7:abcd::1 dev eth0
up ip -6 route add default via 2a04:92c7:abcd::1

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Donate
云乞讨

附录2、配套的视频教程

000116. 前缀长度64的公网IPv6地址,给Ubuntu服务器增加公网IPv6地址  2022-11-09

本期博客地址 https://dasmz.com/?p=2879
本期视频地址 https://youtu.be/v7_vynGTNAo
博客地址 https://dasmz.com
Twitter  https://twitter.com/fdmove
全部视频的目录索引 https://dasmz.com/?p=1342