发布于 

SSH 连接云服务器

SSH (Secure Shell)是一种网络协议,可以用于计算机之间的加密登录

连接服务器

  • ssh user@remote (-v -p port) ,如:ssh root@112.74.xx.xx

    • user 是在远程机器上的用户名

    • remote 是云服务器的地址,可以是 IP 或域名

    • port 是 SSH Server 监听的端口,默认值为 22

    • -v 打印出详细的连接信息

    • -p 指定连接 SSH Server 的端口

  • ssh user@remote [指令] 连接远程服务器并执行指令,发回 stdout 到本机后结束连接

免密登入

公私钥非对称加密方式登入,方便又安全:

  • 配置公钥

    • 在自己计算机的终端中执行 ssh-keygen 即可生成 SSH 钥匙 (一路回车即可)

    • 生成的文件在 ~/.ssh

  • 上传公钥到服务器

    • 执行 ssh-copy-id user@remote ,如:ssh-copy-id root@112.74.xx.xx

    • 让远程服务器记住我们自己的计算机,文件保存在服务器的 ~/.ssh/authorized_keys

上传下载文件

s ecure c o p y

  • 上传本地文件到服务器

    • scp /path/filename(本地文件) username@remote:/remote_dir(远程目录或文件)

    • scp -r /local_dir/(本地目录) username@remote:/remote_dir/(远程目录)

  • 下载服务器上的文件

    • scp username@remote:/path/filename(远程文件)/local_dir(本地目录或文件)

    • scp -r username@remote:/remote_dir/(远程目录) /local_dir/(本地目录)

配置文件

本地

编辑 ~/.ssh/config,添加

1
2
3
4
5
6
7
8
9
10
11
12
Host *
ServerAliveInterval 60
# 每 60 秒发送一个 no-op 包,防止空闲时被服务器断开
# 保持 ssh 连接不断开

Host yun
Hostname 112.74.xx.xx
User root
Port 22

Host xxx
......
  • yun 服务器别名、Hostname 服务器地址

  • 保存后即可使用 ssh yun 来登入对应的服务器

服务端

文件在 /etc/ssh/ssh_config

SSH 的默认保留端口为 22,可以修改为其他合理的端口,修改后需要重启服务器或 ssh 服务

1
2
3
4
5
6
7
8
9
10
11
❯ curl 112.74.38.53:22 # 可以查看端口是否可连接
SSH-2.0-OpenSSH_7.4
curl: (56) Recv failure: Connection reset by peer

❯ curl 112.74.38.53:80 # http
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hidden track</title>
......