如何在Debian Etch上使用公钥认证设置SSH
初步说明
这个小技巧解释了如何使用公共密钥授权(以及可选的禁用密码登录)在Debian Etch上设置SSH服务器。 SSH是一种用于远程控制基于Linux的计算机的好工具。 它安全可靠。
没有保证,它将适用于您。 所有这些设置都适用于Debian系统! 其他系统也可能略有变化。
在服务器上安装SSH
首先,我们在我们的服务器上安装SSH。 我们可以用这个命令:(请注意,你必须是root
才能这样做!)
apt-get install ssh
我们的客户(桌面)系统的准备工作
其次,我们在台式机上做了一些准备。 该PC将用于连接服务器。 因此,SSH服务器已经安装在不同的机器上。 在台式机上,我们安装ssh客户端(我们用来连接服务器)。 请注意,安装程序需要root
权限! 如果您没有以root
身份登录,请登录! ( su
root
然后键入您的密码。)然后安装客户端:
apt-get install openssh-client
切换回普通用户(分别不是root
用户)。 然后按顺序键入以下命令:
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
我们生成我们的密钥对,一个公钥和一个私钥。 公钥将被放置在服务器上,您将使用您的私钥登录。 当被问及时,输入您的密码(这将是未来登录所需的,请记住!):
ssh-keygen -t rsa -C "A comment... usually an email is enough here..."
然后我们将公钥(我们之前生成的)复制到我们的(远程)服务器。 远程用户不应该是root的
! 选择默认的非root用户作为远程用户。 (注意行尾的冒号!这很重要。)
scp -p id_rsa.pub remoteuser@remotehost:
然后我们用SSH登录,我们将公钥复制到正确的地方:
ssh remoteuser@remotehost
mkdir ~/.ssh
chmod 700 ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
mv id_rsa.pub ~/.ssh
logout
我们必须删除桌面上的公用密钥,否则SSH客户端不允许我们登录到服务器。 因此,键入以下命令:
rm id_rsa.pub
然后我们回来:
ssh remoteuser@remotehost
如果我们已经完成了上面所述的一切,那么你将被要求输入密码。 键入它,然后你进入并具有相当安全的SSH环境!
禁用密码验证
禁用它是一个更安全的SSH安装的好方法。 那么您只能使用密钥对登录,所以请小心不要丢失! 它纯粹是可选的,但安全可以激活! 但是在做到这一点之前,请确保基于密钥的身份验证正在开箱即用。 坐在服务器前面(所以不要远程登录,因为我们必须稍后重新启动SSH),并以root身份
手动键入这些命令:
cd /etc/ssh
cp sshd_config sshd_config.orig
nano sshd_config
您将使用主SSH配置文件打开屏幕上的nano文本编辑器。 更改这些行(如果这些行中的任何一行在开头有一个'#'标记(如果有的话)也只是删除哈希标记):
PermitRootLogin yes PasswordAuthentication yes UsePAM yes
对于这些:
PermitRootLogin no PasswordAuthentication no UsePAM no
然后使用Ctrl + O
保存文件,并重新启动SSH服务器:
/etc/init.d/ssh restart
小心:如果您禁用密码验证,则无法使用密码登录! 只有基于密钥的身份验证将可用!
有用链接:
http://www.openssh.org
http://en.wikipedia.org/wiki/Secure_Shell