安全的管理你的远程Ubuntu服务器

要安全的管理你的远程Ubuntu服务器,你需要安装SSH服务器. SSH为你提供一个加密通道来登录到远程服务器并运行命令. 另外,SSH还提供了一些高级功能来简化你的远程管理工作.

在Ubuntu中安装SSH服务器

sudo apt-get install openssh-server

该软件包负责生成初始的RSA和DSA keys, 并提供一个默认的SSH配置.

连接服务器
在另一台机器上使用下面的命令来连接服务器:

ssh serveripaddress

例如:

ssh 195.14.2.1 (ypxing注: 假设主机195.14.2.1上安装了SSH服务器)

配置SSH

/etc/ssh/sshd_config是主要的配置文件. 默认配置允许远程root用户登录和X11 forwarding, 这队安全性没有好处.所以我们要关掉这两个选项.

禁止远程root用户登录

在文件/etc/ssh/sshd_config中搜索下面这行:

PermitRootLogin yes

把它改成:

PermitRootLogin no

禁止X11 forwarding

在文件/etc/ssh/sshd_config中搜索下面这行:

X11Forwarding yes

把它改成:

X11Forwarding no

用下面的命令来重启SSH服务器:

sudo /etc/init.d/ssh restart

X11 Forwarding

如果你想使用X11 Forwarding选项来利用Xterm连接你的远程机器的桌面 (ypxing注: 上面的X11 Forwarding选项需要打开),你需要使用下面的命令:

ssh -X serverIpAddress

利用SCP来安全的拷贝文件

另外一个常用的需求是在你管理的服务器之间拷贝文件.尽管你可以在所有的服务器上都安装一个FTP服务器,但这并不是一个理想的安全的解决方案.利用scp命令, SSH拥有拷贝文件的. 利用你已经建立的(SSH的)基于key的安全认证机制, 你可以在一个安全的通道上拷贝文件.

使用下面的命令来将一个本地文件拷贝到远程主机:

scp /path/to/file user@remotehost:/path/to/destination

使用下面的命令来将一个远程主机文件拷贝到本地:

scp user@remotehost:/path/to/file /path/to/destination

利用-r选项,来将一个本地目录拷贝到远程主机:

scp -r /path/to/directory/ user@remotehost:/path/to/destination/

如果你要传输日志文件或其他有较大压缩比的文件, -C参数会很有帮助. 这会打开压缩选项,虽然在拷贝的时候会使用更多的CPU,但是它会在传输的时候增加传输速度.

利用-l选项来限制可以使用的带宽. 把你希望的带宽放在-l后面, 它以K/s为单位. 例如,以256 Kbps的带宽来传输文件使用下面的命令:

scp -l 256 /path/to/file user@remotehost:/path/to/destination