Ubuntu SSH命令行操作主要包括以下几个方面:
基本连接与断开
-
连接到远程服务器
ssh username@hostname
username
是你在远程服务器上的用户名。hostname
是远程服务器的IP地址或域名。
-
使用密钥认证连接
ssh -i /path/to/private_key username@hostname
-i
参数指定私钥文件路径。
-
断开连接
- 输入
exit
或按Ctrl+D
。
- 输入
文件传输
-
使用SCP(Secure Copy Protocol)复制文件
scp localfile username@hostname:/path/to/destination scp username@hostname:/path/to/source localfile
-
使用SFTP(SSH File Transfer Protocol)进行交互式文件传输
sftp username@hostname
- 进入SFTP会话后,可以使用
get
、put
、ls
、cd
等命令。
- 进入SFTP会话后,可以使用
执行远程命令
-
直接在远程服务器上执行命令
ssh username@hostname 'command'
-
在后台运行命令
ssh username@hostname 'command &'
端口转发
-
本地端口转发
ssh -L local_port:destination_host:destination_port username@hostname
-
远程端口转发
ssh -R remote_port:destination_host:destination_port username@hostname
-
动态端口转发(SOCKS代理)
ssh -D local_port username@hostname
配置SSH
-
编辑SSH配置文件
nano ~/.ssh/config
- 可以在这里设置默认用户名、端口、密钥等。
-
生成SSH密钥对
ssh-keygen -t rsa -b 4096
- 生成的公钥可以添加到远程服务器的
~/.ssh/authorized_keys
文件中。
- 生成的公钥可以添加到远程服务器的
-
修改SSH服务配置
- 编辑
/etc/ssh/sshd_config
文件,然后重启SSH服务:sudo systemctl restart sshd
- 编辑
安全性增强
-
更改SSH默认端口
- 在
sshd_config
中修改Port
参数。
- 在
-
禁用root登录
- 在
sshd_config
中设置PermitRootLogin no
。
- 在
-
使用防火墙限制访问
- 使用
ufw
或其他防火墙工具配置规则。
- 使用
监控与日志
-
查看SSH连接日志
sudo tail -f /var/log/auth.log
-
使用
netstat
或ss
查看SSH端口监听状态sudo netstat -tulnp | grep sshd # 或者 sudo ss -tulnp | grep sshd
其他有用的命令
-
列出远程目录内容
ssh username@hostname 'ls -l /path/to/directory'
-
创建远程目录
ssh username@hostname 'mkdir -p /path/to/new_directory'
-
删除远程文件或目录
ssh username@hostname 'rm -rf /path/to/file_or_directory'
注意事项
- 确保SSH服务正在运行并且监听正确的端口。
- 定期更新SSH客户端和服务器软件以修补安全漏洞。
- 使用强密码或密钥认证,并妥善保管私钥文件。
通过掌握这些基本的SSH命令行操作,你可以高效地在Ubuntu系统上进行远程管理和文件传输。