使用公私钥连接服务器,首先执行如下命令,在本地生成公私钥对:
ssh-keygen -t rsa
需要将公钥复制到服务器的~/.ssh/authorized_keys文件夹下。但我遇到本地无法执行ssh-copy-id命令的问题,执行如下脚本:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {user-name}@{user-ip} "cat >> .ssh/authorized_keys"
如果ssh-copy-id命令可以执行,执行如下命令即可:
ssh-copy-id {user-name}@{user-ip}
参考博客:
windows无法使用ssh-copy-id解决办法。_ssh-copy-id windows_我的征途是星辰大海。的博客-CSDN博客
如果服务器上没有创建ssh登录所需的目录和文件,创建过程如下:
1. 创建ssh文件夹
mkdir ~/.ssh
2. 用chmod命令给文件夹设置权限,3位数字分别表示user、group和other的权限。每一位数字是一个八进制数,r=4,w=2,x=1,4+2+1=7表示可读可写可执行(rwx),4+2=6表示可读写不可执行(rw-),4+1表示可读可执行(r-x)。
参考博客:Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)_chmod700什么意思_林20的博客-CSDN博客
chmod 700 ~/.ssh
3. 创建authorized_keys文件
touch ~/.ssh/authorized_keys
4. 给创建的文件赋予权限
chmod 600 ~/.ssh/authorized_keys
参考博客