1. SSH 基本命令

  1. ssh <username>@<address>
  2. ssh <username>@<address> -p <port>
  3. ssh <username>@<address> -p <port> -i <identity file>

1.1 端口转发

  1. ssh -L <local address>:<local port>:<remote address>:<remote port> <username>@<address>
  2. # 比如
  3. ssh -L localhost:7000:localhost:7000 root@192.168.1.2
  4. # 可以省略本地地址(如果为localhost), 写为
  5. ssh -L 7000:localhost:7000 root@192.168.1.2

1.2 当前登录强制使用密码 (不使用密钥)

  1. ssh -o IdentitiesOnly=yes <username>@<address>

2. SSH 密钥登录

  • 使用 ssh-keygen 生成密钥对, 用法

    1. usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
    2. [-N new_passphrase] [-C comment] [-f output_keyfile]
  • 例子, 在本地生成一对 2048 为的 rsa 密钥, 保存的文件名为 abc

    1. ssh-keygen -b 2048 -t rsa -f ~/.ssh/abc

    然后可以在 ~/.ssh 下看到两个文件

  • 私钥文件 abc

  • 公钥文件 abc.pub

把公钥文件放到服务器的 ~/.ssh 文件夹下.
注意: 要把服务器上 ~/.ssh 文件夹及内部的文件的权限设置为 700 或更高, 否则密钥登录会因为安全问题而受到限制.
然后即可使用密钥登录.

3. SSH 配置 config 文件

  • 配置 ~/.ssh/config 用于快捷登录
    1. Host aaa
    2. HostName 192.168.1.2
    3. IdentityFile /home/<local username>/.ssh/<private key file>
    4. User <remote username>
    配置后可以直接通过 ssh aaa进行连接

4. SFTP 传输文件

4.1 密码登录

  1. sftp <username>@<address>
  2. sftp -P <port> <username>@<address>

特别注意: sftp 的参数与 ssh 的写法不同, 端口使用 -P ,而且要写到最前面.

4.2 快捷登录

  1. sftp aaa

sftp 支持 ssh 中设置的 config 文件.

4.3 传输文件

  1. # 登录完成后, 命令提示符为 >
  2. # 查看远程目录下的文件
  3. ls
  4. # 查看本地目录下的文件, 第一个l是local的意思
  5. lls
  6. # 把本地文件推送到远程服务器
  7. put filename
  8. put -r dirname
  9. # 从远程服务器的文件获取文件到本地
  10. get filename
  11. get -r dirname

5. FileZilla 传输文件

下载地址: https://filezilla-project.org/ 截至2020.9.29, 该软件仍然还在积极更新中.

5.1 简单使用

image.png
① 快速连接区域. 对于临时使用的服务器, 可以在这里输入对应的ssh信息后快速连接.

  • 主机直接填写FTP对应的ip或者域名.
  • 如果希望使用 sftp 登录, 那么主机要写成 sftp://<ip>
  • 端口不填时默认22

② 本地文件浏览
③ 远程文件浏览 (登录成功后这里会列出远程文件)
④ 传输进度显示 (把左侧的文件拖到右侧, 或者把右侧的文件拖到左侧, 这里会显示传输进度)

5.2 保存站点

对于常用的 ftp 或 sftp 站点, 可以保存下来长期使用.

  • 文件 -> 站点管理器 -> 新站点
  • 填入 FTP 或 SFTP (下拉选择) 以及相关的登录信息, 最后点击确定以保存信息即可.
  • 点击工具栏第一个按钮旁的下拉列表, 选择保存的站点进行快速连接, 如下图所示image.png