SSH
本文最后更新于:Monday, December 28th 2020, 5:34 pm
SSH Protocol
Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network.[1] Typical applications include remote command-line, login, and remote command execution, but any network service can be secured with SSH.
摘自维基百科。主要为远程登录建立安全的通道。
1、简要的工作原理
ssh有两种工作方式
基于口令验证
只要知道帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但缺点是:不能保证你正在连接的服务器就是你想连接的服务器。以下是登录验证流程:

基于密钥验证

2、操作过程(本地win10+服务器centos)
本地生成密钥对
1
2"Git Bash Hear"
ssh-keygen -t rsa
可以设置密码,也可以为空(既然为了免密那就设置为空吧,不然没意义了)
文件路径可选。默认放在
~/.ssh/上传公钥到服务器上1
有两种办法:
自行把刚刚上传的公钥上传到服务器指定用户
.ssh/目录下的authorized_keys下。(认证密钥可以有很多把,多个localhost可以各自上传自己的🔒到服务器上。也可以所有人公用一把锁。)ssh-copy-id -i [./y.pub] username@ip (-i指定路径,默认是在.ssh下)这一步也是要认证密码的。不然什么人都可以上锁就乱套。
免密登录服务器
1
ssh -i[dir] username@ip (-i指定密钥所在,默认在.ssh/下)如果之前产生密钥对时设置了密码,这里还是要输入一遍哪个密码的。如果为空就可以直接免密进入了
脚本文件加速登录2
随便选择个文件夹,写一个config文件
Host vps # 一个便于你区别这是哪台机器的名字 HostName 47.95.247.18 User git # 登录主机的用户名称 Port 22 IdentityFile ~/.ssh/id_rsa # 密钥所在的文件位置ssh -F [config file] vps(指定配置文件位置)就可以直接登录你设置的那台主机
可能遇到的问题3
Authentication refused: bad ownership or modes for directory /root/.ssh
ls -l /root/.ssh
发现改目录的所有者不是root。只用改成root即可
chown -R root.root /root/.ssh
Reference
[1] SSH 三步解决免密登录
[2] ssh配置config快速登录
[3] 解决权限问题
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!