1. SSH 基本命令
ssh <username>@<address>
ssh <username>@<address> -p <port>
ssh <username>@<address> -p <port> -i <identity file>
1.1 端口转发
ssh -L <local address>:<local port>:<remote address>:<remote port> <username>@<address>
# 比如
ssh -L localhost:7000:localhost:7000 root@192.168.1.2
# 可以省略本地地址(如果为localhost), 写为
ssh -L 7000:localhost:7000 root@192.168.1.2
1.2 当前登录强制使用密码 (不使用密钥)
ssh -o IdentitiesOnly=yes <username>@<address>
2. SSH 密钥登录
使用
ssh-keygen
生成密钥对, 用法usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
[-N new_passphrase] [-C comment] [-f output_keyfile]
例子, 在本地生成一对 2048 为的 rsa 密钥, 保存的文件名为 abc
ssh-keygen -b 2048 -t rsa -f ~/.ssh/abc
然后可以在
~/.ssh
下看到两个文件私钥文件
abc
- 公钥文件
abc.pub
把公钥文件放到服务器的 ~/.ssh
文件夹下.
注意: 要把服务器上 ~/.ssh
文件夹及内部的文件的权限设置为 700
或更高, 否则密钥登录会因为安全问题而受到限制.
然后即可使用密钥登录.
3. SSH 配置 config 文件
- 配置
~/.ssh/config
用于快捷登录
配置后可以直接通过Host aaa
HostName 192.168.1.2
IdentityFile /home/<local username>/.ssh/<private key file>
User <remote username>
ssh aaa
进行连接
4. SFTP 传输文件
4.1 密码登录
sftp <username>@<address>
sftp -P <port> <username>@<address>
特别注意: sftp 的参数与 ssh 的写法不同, 端口使用 -P
,而且要写到最前面.
4.2 快捷登录
sftp aaa
4.3 传输文件
# 登录完成后, 命令提示符为 >
# 查看远程目录下的文件
ls
# 查看本地目录下的文件, 第一个l是local的意思
lls
# 把本地文件推送到远程服务器
put filename
put -r dirname
# 从远程服务器的文件获取文件到本地
get filename
get -r dirname
5. FileZilla 传输文件
下载地址: https://filezilla-project.org/ 截至2020.9.29, 该软件仍然还在积极更新中.
5.1 简单使用
① 快速连接区域. 对于临时使用的服务器, 可以在这里输入对应的ssh信息后快速连接.
- 主机直接填写FTP对应的ip或者域名.
- 如果希望使用 sftp 登录, 那么主机要写成
sftp://<ip>
- 端口不填时默认22
② 本地文件浏览
③ 远程文件浏览 (登录成功后这里会列出远程文件)
④ 传输进度显示 (把左侧的文件拖到右侧, 或者把右侧的文件拖到左侧, 这里会显示传输进度)
5.2 保存站点
对于常用的 ftp 或 sftp 站点, 可以保存下来长期使用.
- 文件 -> 站点管理器 -> 新站点
- 填入 FTP 或 SFTP (下拉选择) 以及相关的登录信息, 最后点击确定以保存信息即可.
- 点击工具栏第一个按钮旁的下拉列表, 选择保存的站点进行快速连接, 如下图所示