ssh免密码连接远程服务器
❝为了不浪费美好的周末,在这宁静的夜晚,我,使出吃火锅串串烤鱼烤肉烤面筋的力气,挣脱了封印了我一天的大床,实践了一下之前买的某网课里学到的一个小操作. ...emmm没钱买远程服务器,所以这次教程连接的是虚拟机里装的centos
❞
环境
- 系统版本:
- 物理机: macOS Catalina 10.15.6
- 虚拟机: CentOS-7-x86_64-DVD-2003
(本来还想写个2345的,但是好像没啥可以写得了)
步骤
大概有三步
- 在物理机生成id_rsa.pub文件(公钥)
- 将公钥导入到远程服务器的认证文件,并更改权限
- ???好像没有第三步了,如果前面的都顺利的话 此时就可以免密码登录了
生成公钥
ssh-keygen -t rsa
此时 我的电脑(macos)上~/.ssh目录会生成俩文件:id_rsa(私钥)和id_rsa.pub(公钥),windows上的话 也是会生成这俩文件 在user(电脑用户名)/.ssh/ 文件夹下
导入公钥到认证文件
- 导入你自己的电脑(物理鸡)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 导入到远程服务器 首先 将公钥复制到服务器,ctrl+c也可以呦~
scp ~/.ssh/id_rsa.pub root@ip+端口号:/home/jiaqi(远程服务器的用户文件夹)/id_rsa.pub
然后 将公钥导入到远程服务器的认证文件
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
大功告成!~~~ 哦不对 差点忘了 可能还要改一下文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
上面代码重7的意思是rwx(可读写运行)。
在Linux中 数字4、2、1表示读、写和执行的权限,即r=4,w=2,x=1。
如果要设置权限为可读写执行,它的权限就是4+2+1=7
700这三个数字代表着user、group、other的权限
同理,600中的6 代表着我们给user设置的权限为可读写
别名
此时,我们已经可以不用密码连接远程服务器了,可是还要输入长长的域名端口号之类,的让人还是觉得很不巴适,这时候,我们可以在本机(物理机)的~/.ssh 文件夹下创建一个config文件,在里面配置一个远程服务器的别名,具体代码如下:
Host centos
Port 22
HostName 10.211.55.12
User root
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
上面代码的意思是此时我们可以用centos 来指代我们的远程服务器10.211.55.12:22了 并且使用root用户登录
接下来,我们就可以愉快的使用别名来免密码连接远程服务器啦
ssh centos
相当于不使用别名时的
ssh root@10.211.55.12 //22为默认端口可以省略
写着写着突然发现 免密连github上传代码好像就是用的类似的方法,填上ssh公钥之后,github便在在背地里偷偷帮我们做好了其他的操作。
好了就写到这里了,新技能get,开心~
本文使用 mdnice 排版