网站首页 > 数据编程 正文
使用密码登录SSH并不安全,存在被暴力攻击破解的风险,因此建议开启二次验证(双因子验证)以提高安全性,但二次验证(双因子验证)往往依赖于第三方服务商,引入了新的安全风险,因此,使用SSH密钥登录是首选的安全登录方式。
使用ssh-keygen命令生成密钥对,在 Linux 系统上,默认情况下,将在 Linux ~/.ssh/id_rsa 目录中创建 SSH 公钥和私钥文件,权限分别为644和600。需要注意,如果在指定目录中已经具有一个 SSH 密钥对,并且在运行该命令时使用相同的文件名,则会覆盖该现有密钥对。
$ ssh-keygen 生成密钥对
相关命令参数如下:
-m PEM 将密钥的格式设为 PEM,其他支持格式PKCS8,RFC4716
-i 与-m搭配使用,用于导入格式转换
-e 与-m搭配使用,用于导出格式转换
-t rsa 密钥类型,本例中为 RSA 格式,其他为“dsa”, “ecdsa”, “ecdsa-sk”, “ed25519”, “ed25519-sk”
-b 4096 密钥的位数,本例中为 4096
-C "debian_ssh" 追加到公钥文件末尾以便于识别的注释。
-f ~/.ssh/mykeys/myprivatekey 私钥文件的文件名(如果选择不使用默认名称)。 追加了 .pub 的相应公钥文件在相同目录中生成。 该目录必须存在。
-N mypassphrase 访问私钥文件的其他密码(不建议留空)
另外,常见3种操作:
从私钥重新生成OpenSSH格式公钥
ssh-keygen -y -f priKey.pem > sshPubkey.pub
将OpenSSL格式公钥转换成OpenSSH格式
ssh-keygen -i -m PKCS8 -f sslPubKey.pub 〉 sshPubKey.pub
将OpenSSH格式公钥转换成OpenSSL格式公钥
ssh-keygen -e -m PEM -f sshPubKey.pub >sslPubKey.pub
只要将生成的密钥对中的公钥上传到目标SSH服务器上,以后就可以免密登录了,上传公钥有两种方法:
方法一:使用命令ssh-copy-id
方法二:手工上传公钥文件
例如3台主机host1、host2、host3相互复制公钥,实现免密登录
[host1] $ ssh-copy-id khess@host2
[host1] $ ssh-copy-id khess@host3
[host2] $ ssh-copy-id khess@host1
host2] $ ssh-copy-id khess@host3
[host3] $ ssh-copy-id khess@host1
[host3] $ ssh-copy-id khess@host2
在 windows10系统中,也有ssh-keygen命令,但没有ssh-copy-id命令,只能手工上传公钥,命令如下 :
将 windows 10系统中生成密钥对中的公钥上传给主机host1
type .\.ssh\id_rsa.pub|ssh khess@host1 "cat >> .ssh/authorized_keys"
一旦免密登录,传输文件很方便,不仅可以这样:
[host1] $ scp host1.txt khess@host2:/home/khess/host1.txt
[host1] $ scp host1.txt khess@host3:/home/khess/host1.txt
还可以这样,由主机host1下达命令完成文件从主机host2到主机host3的传输,大大提高了运维效率。
[host1] $ scp khess@host2:/home/khess/host2.txt khess@host3:/home/khess/host2.txt
事实上,SSH是一种安全传输协议,而不是某种具体的服务,它还能实现更多,用于与计算机交互、复制文件和保护其他类型的通信,如 "通过 SSH 的 X 服务",再比如日常同步备份也可以通过SSH通道来完成,命令如下:
更为强大的rsync命令也离不开SSH
rsync -azv -e 'ssh -p PORT' --exclude=exclude.txt root@IP
猜你喜欢
- 2024-10-13 几步命令轻松搭建Windows SSH服务端
- 2024-10-13 SSH密钥方式登陆服务器配置说明 ssh密钥认证免密登录
- 2024-10-13 ssh远程管理服务 ssh远程服务器
- 2024-10-13 SSH Key的生成和使用 ssh-keygen -a
- 2024-10-13 「开源资讯」OpenSSH 8.4 发布,增加不少新特性
- 2024-10-13 大数据学习环境搭建系列(十一)安装SSH服务
- 2024-10-13 自动化配置集群主机之间ssh免密登陆 #技术分享
- 2024-10-13 iPhone 终端工具 ssh ish ios终端是什么意思
- 2024-10-13 "赤脚医生”和“七段骇客”过招的故事——系统被黑排查和确认
- 2024-10-13 linux实例之ssh和sshd linux使用ssh连接
- 01-15MySQL数据库语句
- 01-15如何让MySQL查询速度提升10倍以上-爱可生
- 01-15Python+MySQL数据库操作(PyMySQL)
- 01-15【数据管理】数据库通用概念和常用SQL讲解
- 01-15MySQL数据库性能优化
- 01-15怎样写出可以在各个数据库中都能执行的SQL?
- 01-15Excel常用函数1:统计类函数
- 01-15从数据库、代码层、缓存使用3个方向,聊聊如何减少bug?
- 最近发表
- 标签列表
-
- oraclepdb (60)
- vncviewermac (62)
- sqlservermax (58)
- mysqlcanal (61)
- mysql:commandnotfound (56)
- mysqlexplainfiltered (56)
- python位运算符 (59)
- linuxfind-name模糊查询文件 (60)
- centos7systemctl (76)
- mysqlgt (55)
- nc命令 (66)
- dockerfilecp (55)
- 单行子查询返回多个行解决办法 (58)
- ssh-2.0-openssh_7.4 (56)
- vue图片裁剪 (59)
- anyvideoconverterpro (62)
- pscache (58)
- hdfsfsck (63)
- nacos源码 (69)
- lambdawrapper (60)
- 安装jdk11 (60)
- 什么是聚簇索引 (62)
- 锁升级过程 (58)
- bootcdn (64)
- axurerp9mac破解版 (58)