ssh是一种网络通讯协议,用于计算机之间的加密登陆.通常用ssh链接服务器有两种方式:密码认证与密钥认证.
密码认证就是经过传统的输入密码的方式登陆,密钥认证就是把产生的公钥注册到服务器后,用私钥登陆,这样就能够不用每次登陆输入密码.特别适合做者这种脑残记不住密码的懒人. javascript
密码认证登陆直接在终端使用ssh命令便可:java
ssh username@xxx.xxx.xxx.xxx
username为用户名,后面为ip.vim
这一步使用ssh-keygen命令生成id_rsa与id_rsa.pub文件:windows
ssh-keygen -t rsa -b 4096 -C "eamil"
其中email为你的邮箱.
而后一直enter就行了(固然你也能够修改参数,好比生成的公钥与私钥的文件名等,后面要对应).bash
cd ~/.ssh ssh-copy-id -i id_rsa.pub username@xxx.xxx.xxx.xxx
注意复制的是公钥(.pub结尾,不是私钥id_rsa).服务器
若出现以上状况,根据提示说是私钥的权限问题,修改成:网络
chmod 600 id_rsa
在windows上使用wsl的要注意,wsl不能直接修改文件权限,须要修改一下/etc/wsl.conf文件(没有的话就新建).ssh
vim /etc/wsl.conf
输入ide
[automount] enabled = true options = "metadata,umask=22,fmask=11" mountFsTab = false
退出wsl重启.加密
ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx
若是上面配置没出现的话就能够链接上了.
先用密码认证的方式登陆服务器,修改/etc/ssh/sshd_config(注意有一个d,/etc/ssh下有一个叫ssh_config的文件,不要ssh而后按tab....)
vim /etc/ssh/sshd_config
找到PasswordAuthentication这一行.
修改成no.
而后重启服务:
service ssh restart
或者
/etc/init.d/ssh restart
重启服务后链接:
ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx