Table of Contents

SSH的使用


在服务器上安装SSH并配置

sudo apt-get install ssh
sudo apt-get install openssh-server
sudo service ssh start
sudo service ssh suatus
# 配置文件里可以开启:允许密码登录、允许root登录、端口等
sudo vim /etc/ssh/sshd_config
sudo service ssh restart

使用SSH生成密钥

# 在Windows上:
ssh-keygen -t rsa -f C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME -C USERNAME -b 2048
 
# 会生成两个文件,一个公钥,一个私钥
# 生成之后把公钥添加到服务器上,比如GitLab或者GCP都提供添加SSH公钥的选项
# Linux服务器上如何导入公钥?把公钥内容放在这个文件里:~/.ssh/authorized_keys

使用私钥登录SSH

ssh user@host -i key_file

使用SCP传输文件

scp -i key_file source_path/xxx.zip user@host:/home/target_path
scp -i key_file user@host:/home/xxx.zip ./target_path
 
# 可以上传也可以下载,交换一下Source和Target的顺序就可以了
# 要上传到Linux服务器的压缩包记得使用utf-8编码压缩

安全错误

在某些情况下,比如域名绑定的IP变了,就连不上去了,会有安全警告,这时候把known_hosts(一个文件)清空就行了,相当于清空连接历史。known_hosts一般在~或者我的文档

密钥的文件权限

在MacOS上,如果密钥的权限设置不正确,可能是无法使用的,比如会看到类似下面的错误

ssh xxx@xxx -i xxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'xxx' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "xxx": bad permissions
xxx@xxx: Permission denied (publickey).

这时需要修改一下密钥文件的权限

chmod 600 key_file

然后就可以正常登录了