远程管理
远程登录(ssh)
在 Linux 中 SSH(secure shell) 是非常常用的工具,通过 SSH 客户端
可以连接到运行了 SSH Server
服务的远程机器上
SSH 客户端
是一种使用Secure Shell(SSH)
协议连接到远程计算机的软件程序SSH
是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议- 利用
SSH 协议
可以有效防止远程管理过程中的信息泄露 - 通过
SSH 协议
可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗
- 利用
SSH
的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
SSH 的简单使用
bash
ssh [-p port] user@remote
user
是在远程机器上的用户名,如果不指定的话默认为当前用户remote
是远程机器的地址,可以是IP/域名
,或者是后面会提到的别名port
是SSH Server
监听的端口,如果不指定,就为默认值22
注意,如果在 Windows
系统中无法使用,可以安装 Git
之类的工具。
SSH 免密登录
前排提示:有关 SSH 配置信息都保存在用户家目录下的 .ssh
目录下
1、配置公钥:执行 ssh-keygen
即可生成 SSH 钥匙,一路回车即可
2、上传公钥到服务器:执行 ssh-copy-id -p port user@remote
,可以让远程服务器记住我们的公钥
配置别名
每次都输入 ssh -p port user@remote
,时间久了会觉得很麻烦,特别是当 user
、remote
和 port
都得输入,而且还不好记忆
而配置别名可以让我们进一步偷懒,譬如用:ssh ubuntu
来替代上面这么一长串,那么就在 ~/.ssh/config
里面追加以下内容:
Host ubuntu
HostName ip地址
User ubuntu
Port 22
保存之后,即可用 ssh ubuntu
实现远程登录了,scp
同样可以使用
文件传输(scp)
scp
就是 secure copy
,是一个在 Linux 下用来进行远程拷贝文件的命令。它的地址格式与 ssh
基本相同,需要注意的是,在指定端口时用的是大写的 -P
而不是小写的。
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
shell
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo