原理
ssh密钥连接的原理是利用加密算法生成密钥对。将私匙放在本地电脑上,将公匙放在远端服务器上。
1. 生成密匙对
ssh-keygen -t rsa # rsa是加密算法,还可以选择dsa等算法
在客户机上执行此命令后会~/.ssh
目录生成id_ras
和id_rsa.pub
文件。
其实也可以在服务器上执行该命令,生成公匙和密匙,区别在于:将生成的私匙下载到客户机,该方法常见于云服务器中。
2. 将id_rsa.pub
放入服务器
先将id_rsa.pub
复制到服务器上,之后将id_rsa.pub
文件追加写入服务器的~home/.ssh/authorized_keys
文件中。
在这里有两种方法:
客户机是Linux:
使用命令:
ssh-copy-id username@host
该命令自动将id_rsa.pub
复制到服务器上并且将其内容追加到~home/.ssh/authorized_keys
文件中,没有该文件则新建。
客户机是win10
在win10上没有ssh-copy-id命令,那就麻烦一点。
先将id_rsa.pub
上传到server
scp ~\.ssh\id_rsa.pub username@host:.ssh\
然后将将id_rsa.pub
内容追加到~home/.ssh/authorized_keys
文件中
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
3. 设置客户机的config文件
在~\.ssh\
目录下新建文件config
内容如下:
Host server名称(任意设置的别名)
HostName server IP地址或域名
User 用户名(server上已有的用户名)
IdentityFile C:\Users\xxx\.ssh\id_rsa (本机私匙的位置,在win10上写相对路径会出问题,所以这里写了绝对路径,在Linux中直接写相对路径 `./id_rsa`)
*如果出现文件权限问题:
chmod 600 authorized_keys
chmod 700 ~/.ssh