admin 管理员组文章数量: 887007
Linux和Windows配置ssh免密码登录
- 生成ssh密钥对
- ssh-keygen常用参数
- 交互式生成ssh密钥对
- 非交互式生成密钥对
- 通过私钥生成公钥(非必需执行)
- 修改公钥文件的注释信息
- 通过私钥生成公钥
- ssh免密登陆原理
- 为Linux配置ssh免密码登录
- 非22端口的解决办法
- 方法2:ssh_config配置ssh免密登录
- Windows10免密码ssh登录Linux
- 方法2:使用powershell命令配置ssh免密
- 使用 ssh-agent 来存储私钥密码
- 使用sshpass非交互登录ssh--不推荐
- 安装sshpass
- 使用sshpass非交互式ssh登录
生成ssh密钥对
RSA
算法实现过程
ssh-keygen常用参数
https://www.itbiancheng/article/5236.html
## -m PEM =将密钥文件格式设为PEM
## -t rsa =指定密钥类型为RSA格式
## -b 4096 =指定密钥的位数为4096
## -C “qiaofei@myserver” 私钥的注释信息,默认是用户名@服务器名
## -f `~/.ssh/mykeys/myprivatekey` =指定私钥文件的文件名
## -N 密码 =指定私钥文件的密码
ssh-keygen \
-m PEM \
-t rsa \
-b 4096 \
-C "azureuser@myserver" \
-f ~/.ssh/mykeys/myprivatekey \
-N mypassphrase
交互式生成ssh密钥对
# 交互式生成密钥对
## 第一次提示:密钥对文件保存路径,直接敲回车
## 第二次提示:是否给密钥文件设置密码,(一般不设置)直接敲回车
## 第三次提示:输入注释域信息,注释域默认初始化为"user@host",以后可以用 -C 选项修改。
ssh-keygen
非交互式生成密钥对
在ssh-client
机器上执行
# 非交互式生成密钥对
## -f 指定私钥文件的文件名
## -C 私钥的注释信息,默认是用户名@服务器名
ssh-keygen -f ~/.ssh/id_rsa -C '注释信息'
通过私钥生成公钥(非必需执行)
在ssh-client
机器上执行。
适用于公钥文件丢失
的情况下。
# 通过私钥查看公钥
ssh-keygen -y -f 私钥
# 通过私钥生成公钥
ssh-keygen -y -f 私钥 > id_rsa.pub
修改公钥文件的注释信息
原公钥文件注释信息
# 修改公钥的注释信息
## -c 要求修改私钥和公钥文件中的注释。本选项只支持 RSA1 密钥。
## -C 指定注释
## -f 指定私钥文件
ssh-keygen -c -C "新注释信息" -f id_rsa
修改后的注释信息
通过私钥生成公钥
# 通过私钥生成公钥
ssh-keygen -y -f id_rsa > id_rsa.pub
ssh免密登陆原理
https://blog.csdn/omaidb/article/details/120027990
将ssh-client
的公钥内容
保存到服务器上的authorized_keys(授权文件)
中,客户端可实现免密登录
.
服务器上的authorized_keys(授权文件)
权限必须是600
或者400
# 将指定的客户端添加为免密登陆
echo "ssh-client的公钥信息" >> /root/.ssh/authorized_keys
为Linux配置ssh免密码登录
ssh客户端
执行
# 创建密钥对
ssh-keygen –t rsa –C "注释"
# 将本地的公钥传输到被管理节点
ssh-copy-id root@ssh-host-ip
~/.ssh
目录权限是700
# 查看~/.ssh目录的权限
stat -c%a .ssh
# 设置~/.ssh目录权限
chmod 700 ~/.ssh
# 如果还是不能免密登录,需要在B机执行
chmod g-w $HOME
# 如果需要A和B互相免密登录,需要互相分发密钥
非22端口的解决办法
有些服务器的sshd服务配置了其他端口,而不是22端口。
# -p 指定ssh端口号
ssh-copy-id -p 58422 root@192.168.1.10
# 登陆
ssh 用户名@服务器地址 -p 端口号
方法2:ssh_config配置ssh免密登录
ssh_config
配置是持久化配置文件。
# 方法2,为该服务器单独配置
vim ~/.ssh/config
# 加上内容:
Host node1
user admin
Hostname 1.2.3.4
Port 2222
# 指定私钥
identityfile ~/.ssh/id_rsa
# 登录node1
ssh node1
Windows10免密码ssh登录Linux
Windows7及以下
版本使用putty
客户端或cmder终端
;
Windows10及以上
版本直接使用cmd
可以使用ssh
。
# 创建密钥对
ssh-keygen –t rsa –C "注释"
# 安装ssh-copy-id
choco install ssh-copy-id -y
# 上传私钥到ssh-host
ssh-copy-id 用户名@主机ip
# 登录ssh
ssh 用户名@主机ip
方法2:使用powershell命令配置ssh免密
# 使用powershell上传公钥到ssh-host
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@192.168.2.244 "cat >> .ssh/authorized_keys"
使用 ssh-agent 来存储私钥密码
https://learn.microsoft/zh-cn/azure/virtual-machines/linux/create-ssh-keys-detailed#use-ssh-agent-to-store-your-private-key-passphrase
ssh-agent
来缓存私钥文件密码
# 验证ssh-agent处于工作状态
eval "$(ssh-agent -s)"
# 私钥添加到ssh-agent缓存中
ssh-add ~/.ssh/id_rsa
使用sshpass非交互登录ssh–不推荐
用于非交互的ssh 密码验证
参考地址 https://www.linuxcool/sshpass
安装sshpass
# 安装epel源
yum install -y epel-release
# 安装sshpass
yum install -y sshpass
# 查看sshpass版本
sshpass -V
使用sshpass非交互式ssh登录
# 使用sshpass传递密码
sshpass -p 密码 ssh root@ip地址
版权声明:本文标题:Linux和Windows配置ssh免密码登录 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1733296511h1572561.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论