Answers:
帮助您开始在使用Ubuntu的主机上开始设置ssh服务的最佳资源是OpenSSH Server。这将允许您使用SSH文件传输协议(也称为安全文件传输协议或SFTP)从客户端计算机通过SSH访问,传输和管理文件。
OpenSSH server
在主机上设置,然后用户可以ssh
仅使用用户名和密码来从客户端连接到主机的服务器。但是请注意,建议使用公钥身份验证,要在主机上安装OpenSSH服务器,请执行以下操作:
sudo apt-get install openssh-server
为您的主机提供一个静态IP地址,以便您可以可靠地连接到它:
nm-connection-editor
要配置您的OpenSSH服务器,“首先,通过将sshd_config文件复制到主目录或通过在/ etc / ssh中进行只读复制来进行备份:”
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
“一旦备份了sshd_config
文件,就可以使用任何文本编辑器进行更改,例如:”
sudo -H gedit /etc/ssh/sshd_config
您必须在主机上重新启动ssh服务,这些更改才能生效
sudo service ssh restart
PermitRootLogin without-password
; 添加PermitRootLogin no
到主机的/etc/ssh/sshd_config
Port 22
;添加Port <new-port-number>
到主机的/etc/ssh/sshd_config
ListenAddress 192.168.0.10
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
或添加AllowUsers <username>@111.222.333.*
到主机的/etc/ssh/sshd_config
~/.ssh/id_rsa.pub
每个客户端的内容附加为Host的新行~/.ssh/authorized_keys
。然后添加PasswordAuthentication no
到主持人的/etc/ssh/sshd_config
sudo apt-get install ufw && sudo ufw limit OpenSSH
PasswordAuthentication
在sshd_config
文件中启用找到包含该短语的行PasswordAuthentication
并将其显示为:
PasswordAuthentication yes
保存新sshd_config
文件,然后重新启动主机的ssh
服务:
sudo service ssh restart
请注意,主机ssh
服务在sshd_config
文件中侦听的端口,并将路由器设置为将针对该端口的TCP / UDP通信转发到OpenSSH服务器的IP地址。
192.168.1.1
以便登录到路由器并设置端口转发。请参阅将OpenSSH服务器和路由器配置为接受Internet上的SSH连接?要像<username>
在主机上一样打开SFTP Shell终端,请在客户端上打开终端并输入以下命令,用123.123.1.23
主机的IP地址代替:
sftp <username>@123.123.1.23
如果您更改了主机的OpenSSH服务器侦听的端口号,请执行以下操作:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
要像<username>
在主机上一样打开SSH shell终端,请在客户端上打开终端并输入以下命令,用123.123.1.23
主机的IP地址代替:
ssh <username>@123.123.1.23
如果您更改了主机的OpenSSH服务器侦听的端口号,请执行以下操作:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
SSH
sshd_config
文件中指定的端口号在14.04中:
主机上适当的文件权限可确保您在主机上创建的每个标准用户(无sudo特权)将拥有其/home/new_user
目录,但对其余目录结构具有有限的权限。
希望对您有所帮助!
步骤1:安装OpenSSH软件包(如果未安装)
sudo apt-get install openssh-server
步骤2:为SFTP用户创建单独的组。
sudo addgroup ftpaccess
步骤3:编辑/etc/ssh/sshd_config
文件并进行如下更改。在下面的行中查找并评论。
#Subsystem sftp /usr/lib/openssh/sftp-server
并将这些行添加到文件末尾。
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
步骤4:重新启动sshd服务。
sudo service ssh restart
步骤5:添加具有ftpaccess组的用户并创建密码。
sudo adduser paul --ingroup ftpaccess --shell /usr/sbin/nologin
步骤6:修改主目录权限。
sudo chown root:root /home/paul
第7步:在home内创建一个目录以进行上传,并修改组的权限。
sudo mkdir /home/paul/www
sudo chown paul:ftpaccess /home/paul/www
而已 。
请参阅:在ubuntu上设置SFTP
sudo chmod 711
在主文件夹上进行了操作,它仅允许我通过ftp到www文件夹。到目前为止似乎还不错,但也许其他人也可以
除了您可能要查看的“ jtd”提到的工具之外,Denyhosts是另一种工具。它可以自动阻止与您的SSH服务器的重复连接尝试。可以将其安装在Ubuntu存储库中。
限制对用户的访问
在这里,我们将只允许用户执行文件传输,并且将禁用终端访问。
为此,在配置文件的底部添加以下代码。
$ sudo nano /etc/ssh/sshd_config
现在,该文件将打开并粘贴代码。
/etc/ssh/sshd_config
. . .
Match User filemg
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
filemg
用您的用户名替换。然后保存并关闭文件。
而已。