SSH远程连接服务器

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。

Mac(我从windows跑路了)

  • 直接用命令行ssh
1
ssh user@host -p port

主要会有两个麻烦以及个人的处理方式:

  • 多次登陆或者有多个服务器地址 -> SSH key + Mac自带new remote connection
  • 文件传输 -> 使用客户端

创建SSH key

创建SSH key实现‘免密登陆’。
如果已经创建过密钥可以直接使用,则跳过下面这个命令。

1
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

默认目录在/home/yourusername/.ssh/id_rsa,会生成id_rsa以及id_rsa.pub

1
ssh-copy-id remote_username@server_ip_address

在此输入登录服务器的密码。

之后只需要在终端ssh user@host可直接登陆。更方便的方式是在Mac上打开terminal以后,左上角shell点击new remote connection在服务器列表新建用户名@服务器ip。设置过密钥配对后,可以直接连接。
这是比较类似于客户端的,不需要反复输入ip和密码,当有多个服务器的时候也方便

使用VScode

在vscode打开terminal:按shift+command+p,输入/选择View: Toggle terminal。可以上面开个脚本编辑代码,下面是终端。

安装Remote SSH插件,存储server id,还可以添加文件夹目录。

文件传输

scp

上传文件

1
scp 文件名 用户名@服务器ip:目标路径

上传文件夹

1
scp -r 文件夹目录 用户名@服务器ip:目标路径

下载文件和文件夹

1
2
scp 用户名@服务器ip:文件路径 目标路径
scp -r 用户名@服务器ip:文件夹目录 目标路径

sftp

同上在shell点击new remote connection
点击sftp

1
put 本地文件路径 远程主机路径

客户端

让传输文件更方便一些,暂时使用FileZilla的破解版。

Windows系统

AWS 通过pem文件登录EC2

Linux

1
2
3
4
# 修改权限 -wr
chmod 600 xxx.pem
# ssh
ssh -i xxx.pem user@host

Windows

  • putty 需要转换pem文件格式
  • xshell
  • bitvise
    Client key manager 上传pem文件
    Initial method: pubickey
    选择上传的client key

端口转发

暂时用不到