十、Ubuntu之SSH远程
1 SSH基本概念
1.1 SSH是什么
SSH(Secure Shell)是一种用于远程登录和其他网络服务的加密协议。它主要用于通过不安全的网络安全地访问远程计算机。SSH提供了一种安全的途径,可以在两台计算机之间传输数据,并支持各种身份验证方法。
1.2 主要功能
-
安全登录到远程系统:使用SSH可以通过命令行远程登录到另一台计算机。
-
安全文件传输:通过SCP(Secure Copy Protocol)和SFTP(SSH File Transfer Protocol)可以在本地和远程计算机之间安全地传输文件。
-
端口转发:可以通过SSH进行端口转发,实现访问受限制的服务。
1.3 常用的SSH客户端和服务器
-
OpenSSH:最常见的SSH工具,广泛应用于各种类Unix操作系统。
-
PuTTY:Windows平台上的流行SSH客户端。
SSH使用公钥加密技术来确保数据的保密性和完整性,使得在不安全网络上进行安全通信成为可能。
2 安装SSH服务
# 下载SSH服务
sudo apt install openssh-server -y
# 设置开机启动SSH服务
sudo systemctl enable ssh
# 启动SSH服务
sudo systemctl start ssh
# 检查SSH服务状态
sudo systemctl status ssh
ssh配置文件位置:
-
ssh配置文件在/etc/ssh
-
客户端配置文件/etc/ssh_config
-
服务器配置文件/etc/sshd_config
3 SSH远程登录控制
# 端口默认是22,可以不指定
ssh -p port [远程主机用户名]@[远程服务器主机名或IP地址]
4 SSH远程传输文件
4.1 使用SCP传输文件
# 本地文件复制到远端
scp local_file_path username@remote_ip:remote_dir_path
# 远端文件下载到本地
scp username@remote_ip:remote_dir_file_path local_dir_path
scp命令选项
-
-r:使用 scp 命令传输文件夹自己所有子文件(深度递归)
scp -r 截屏 lieryang@192.168.2.8:~/Desktop/
4.2 SFTP安全文件传输协议
SFTP(SSH File Transfer Protocol)安全文件传输协议(默认端口 22)是建立在 SSH 协议之上运行的文件传输子协议, 提供了对文件的安全访问和传输。FTP 是基于 TCP(默认端口 21)明文传输的应用层协议。SFTP 相比于 FTP,使用密文传输更安全,通常不会受到防火墙的限制。
# 远程连接到服务器,-P 一般是 22,一般省略不写
sftp -P remote_port username@romote_ip
# 下载 remote_file_path 到本地,可以使用-r指定文件夹进行下载
get remote_file_path
# 将本地 local_file_path 文件上传到远端服务器
put local_file_path
# 退出sftp连接
exit