服务器sshd配置
#vim /etc/ssh/sshd_conf
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#/etc/init.d/sshd restart
windows生成密钥
第一种方法:管理员权限运行 powershell
ssh-keygen -t rsa
然后在“C:\Users\username\.ssh” 查看生成的文件
第二种方法:Xshell
打开Xshell->工具->新建用户密钥生成向导(W)
RSA加密方式,2048位密钥长度->输入公钥名称(wangs_rsa),密钥密码,下一步
公钥格式(ssh2-openssh)->保存文件,将公钥保存到本地->完成
这是会弹出会话框,里面有你刚刚生成的私钥(与密钥名称相同),选中私钥,点击导出,将私钥导出到本地
现在,本地就有一对对应公钥和私钥了(wangs_rsa和wangs_rsa.pub)
windows远程windows
登录目标windows服务器
1、下载、安装openssh软件
https://github.com/PowerShell/Win32-OpenSSH/releases
2、创建 “C:\Users\username\.ssh”目录和 “authorized_keys”文件(账户密码远程一次之后,就会生成一个账户目录)
3、把客户端windows上生成的“angs_rsa.pub”中的内容拷贝到authorized_keys中
4、修改秘钥权限
icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
5、修改openssh的配置文件
#允许公钥授权访问,确保条目不被注释 PubkeyAuthentication yes #授权文件存放位置,确保条目不被注释 AuthorizedKeysFile .ssh/authorized_keys #可选,关闭密码登录,提高安全性 PasswordAuthentication no #注释掉默认授权文件位置,确保以下条目被注释 #Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
windows远程Linux
xshell登录目标Linux服务器
将公钥id_rsa.pub上传到目标服务器用户下.ssh目录
如果没有可以新建,注意权限
#mkdir .ssh
#chmod 700 .ssh
#cat id_rsa.pub >> authorized_keys
#chmod 600 authorized_keys
新建登录,输入用户名后,SSH身份验证时选择public key,选择刚刚生成的私钥,如果私钥设置密码,输入密码,否则可即可登录
linux 密钥生成
在客户端执行
#ssh-keygen -t rsa
一路回车,根据提示,可以设置名称添加密码等,最后生成一对私钥和公钥
将生成的公钥拷贝到服务端
方法1:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@218.111.89.222
如果远程端口不是默认的,则
ssh-copy-id -p 端口 -i /root/.ssh/id_rsa.pub root@218.111.89.222
方法2:
将公钥id_rsa.pub上传到目标服务器用户下.ssh目录
如果没有可以新建,注意权限
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
注意:
服务器端的 authorized_keys这个只能是600权限
客户端使用私钥远程服务端
第一次需要私钥的路径,第二次连接就不用了
ssh -p 端口 -i /root/.ssh/id_rsa root@218.111.89.222
ssh -p 端口 root@218.111.89.222
在实例内添加或替换密钥对
https://help.aliyun.com/document_detail/51793.html