您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > Linux SSH配置和禁止Root远程登陆设置文档
LinuxSSH配置和禁止Root远程登陆设置2010-01-0713:161、servicesshdrestart或者/etc/init.d/sshdrestart(ssh服务器重启)一、修改vi/etc/ssh/sshd_config文件1、修改默认端口:默认Port为22,并且已经注释掉了;修改是把注释去掉,并修改成其它的端口。2、禁止root用户远程登陆:修改PermitRootLogin,默认为yes且注释掉了;修改是把注释去掉,并改成no。3、PermitEmptyPasswordsno不允许空密码用户login二、ssh的公钥认证配置:修改vi/etc/ssh/sshd_config文件RSAAuthenticationyes#启用RSA认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)PubkeyAuthenticationyes#启用公钥认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)PasswordAuthenticationno#禁止密码认证(改为no,默认为yes是用密码认证)StrictModesno#修改为no,默认为yes.如果不修改用key登陆是出现serverrefusedourkey(如果StrictModes为yes必需保证存放公钥的文件夹的拥有与登陆用户名是相同的.“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)之后重新启动ssh服务:/etc/init.d/sshrestart生成登陆公钥与私钥,[root@usousou192_168_0_21ssh]#ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):/home/linden.guo/.ssh/id_rsa(生成私钥与公钥存放位置)Enterpassphrase(emptyfornopassphrase):输入密码Entersamepassphraseagain:再次输入密码Youridentificationhasbeensavedin/home/linden.guo/.ssh/id_rsa.(生成的私钥)Yourpublickeyhasbeensavedin/home/linden.guo/.ssh/id_rsa.pub.(生成的公钥)Thekeyfingerprintis:76:04:4d:44:25:37:0f:b1:a5:b7:6e:63:d4:97:22:6broot@usousou192_168_0_21将生成的公钥匙id_rsa.pub传到要登陆的服务器上并追加到authorized_keys文件中,放到用户目录的.ssh中catid_rsa.pub.ssh/authorized_keys(如果没有authorized_keys,可直接将id_rsa.pub重命名为authorized_keys,自己认为,没有测试过)使用putty连接ssh服务器。为了使用公钥认证,我们需要同时下载puttygen这个工具来生成putty所使用的密钥如果你按照上面的介绍,在Linux下生成了公钥和密钥的话,那么需要利用puttygen将密钥转换成putty使用的格式。将Linux下生成的密钥id_rsa复制到Windows下。启动puttygen,然后单击Load按钮,选择文件类型为所有文件,然后选择id_rsa,打开。若在生成密钥时输入了密码,则打开时需要输入该密码(用linux生成密钥时输入的密码)。之后就可以在puttygen的主界面上单击Saveprivatekey,保存成putty格式的密钥。最好确定用户目录下的.ssh文件夹对于拥有者有读写执行的权限,最低要有执行权限,如700或者100;authorized_keys文件中有读的权限注:AuthorizedKeysFile.ssh/authorized_keys(认证文件的目录与公钥文件名称,可以修改,并且相应目录也要修改,如AuthorizedKeysFile.sshd/linden.guo_keys,需要在用户目录下建立.sshd文件夹,将linden.guo_keys文件放到下面)为什么要使用公钥认证通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名和密码,两者满足一定规则就可以登录。但是密码认证有以下的缺点:用户无法设置空密码(即使系统允许空密码,也会十分危险)密码容易被人偷窥或猜到服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人而使用公钥认证则可以解决上述问题。公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦多个使用者可以通过各自的密钥登录到系统上的同一个用户公钥认证的原理所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey),任何人都可以看到其内容,用于加密;另一个称为密钥(privatekey),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。ssh的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。为了说明方便,以下将使用这些符号。Ac客户端公钥Bc客户端密钥As服务器公钥Bs服务器密钥在认证之前,客户端需要通过某种方法将公钥Ac登录到服务器上。认证过程分为两个步骤。会话密钥(sessionkey)生成客户端请求连接服务器,服务器将As发送给客户端。服务器生成会话ID(sessionid),设为p,发送给客户端。客户端生成会话密钥(sessionkey),设为q,并计算r=pxorq。客户端将r用As进行加密,结果发送给服务器。服务器用Bs进行解密,获得r。服务器进行rxorp的运算,获得q。至此服务器和客户端都知道了会话密钥q,以后的传输都将被q加密。认证服务器生成随机数x,并用Ac加密后生成结果S(x),发送给客户端客户端使用Bc解密S(x)得到x客户端计算q+x的md5值n(q+x),q为上一步得到的会话密钥服务器计算q+x的md5值m(q+x)客户端将n(q+x)发送给服务器服务器比较m(q+x)和n(q+x),两者相同则认证成功服务器端设置使用公钥认证需要对服务器进行一些设置。修改/etc/sshd_config的以下配置。RSAAuthenticationyes#启用RSA认证PubkeyAuthenticationyes#启用公钥认证PasswordAuthenticationno#禁止密码认证StrictModesno#修改为no,默认为yes.如果不修改用key登陆是出现serverrefusedourkey然后重新启动sshd。/etc/init.d/sshrestart客户端设置Linux假设客户端的用户charlee要以guest用户登录到服务器上。首先在客户端执行下面的命令。[charlee@client:~]$ssh-keygen-trsaGeneratingpublic/privatersa1keypair.Enterfileinwhichtosavethekey(/home/charlee/.ssh/id_rsa):Enterpassphrase(emptyfornopassphrase):输入密码Entersamepassphraseagain:再次输入密码Youridentificationhasbeensabedin/home/charlee/.ssh/id_rsaYourpublickeyhasbeensavedin/home/charlee/.ssh/id_rsa.pub生成的文件保存在主目录的.ssh目录下,id_rsa为客户端密钥,id_rsa.pub为客户端公钥。之后,通过U盘等方式将公钥id_rsa.pub复制到服务器上,并执行下列命令。[guest@server:~]$catid_rsa.pub.ssh/authorized_keys其中id_rsa.pub是客户端的用户charlee的公钥。这样在客户端即可通过以下的命令连接服务器。[charlee@client:~]$ssh-lguestserver若不想每次登录服务器时都输入密码,可以先执行下列命令:[charlee@client:~]$ssh-addEnterpassphrasefor/home/charlee/.ssh/id_rsa:输入密码Identityadded:/home/charlee/.ssh/id_rsa(/home/charlee/.ssh/id_rsa)以后登录服务器就不需要输入密码了。Windows假设我们使用putty连接ssh服务器。为了使用公钥认证,我们需要同时下载puttygen这个工具来生成putty所使用的密钥。使用Linux下生成的公钥和密钥的情况如果你按照上面的介绍,在Linux下生成了公钥和密钥的话,那么需要利用puttygen将密钥转换成putty使用的格式。将Linux下生成的密钥id_rsa复制到Windows下。启动puttygen,然后单击Load按钮,选择文件类型为所有文件,然后选择id_rsa,打开。若在生成密钥时输入了密码,则打开时需要输入该密码。之后就可以在puttygen的主界面上单击Saveprivatekey,保存成putty格式的密钥。使用puttygen生成公钥和密钥你也可以利用puttygen直接生成公钥和密钥。打开puttygen,然后在画面下方的Parameters栏选择加密算法和加密长度(一般取默认值即可),最后单击Generate。画面上会出现一个进度条,在界面上随意移动鼠标以生成随机数。最后提示生成结束,单击Saveprivatekey按钮保存密钥。最后将上方的PublickeyforpastingintoOpenSSHauthorized_keysfile栏中的内容复制到Linux下用户主目录下的~/.ssh/authorized_keys文件中。设置putty使用公钥认证先在putty中设置好连接的主机名、端口等信息(说明省略)。使用公钥认证需要设置两个地方:一个是Connection中的Auto-loginusername,输入在服务器上的用户名;另一个是Connection-SSH-Auth中的Privatekeyfileforauthentication,选择刚才转换或生成的.ppk格式的密钥。之后即可使用公钥认证进行连接了。
本文标题:Linux SSH配置和禁止Root远程登陆设置文档
链接地址:https://www.777doc.com/doc-7027499 .html