<ins id='rwu9m'></ins>
  • <tr id='rwu9m'><strong id='rwu9m'></strong><small id='rwu9m'></small><button id='rwu9m'></button><li id='rwu9m'><noscript id='rwu9m'><big id='rwu9m'></big><dt id='rwu9m'></dt></noscript></li></tr><ol id='rwu9m'><table id='rwu9m'><blockquote id='rwu9m'><tbody id='rwu9m'></tbody></blockquote></table></ol><u id='rwu9m'></u><kbd id='rwu9m'><kbd id='rwu9m'></kbd></kbd>
    1. <i id='rwu9m'></i>

      <code id='rwu9m'><strong id='rwu9m'></strong></code>
        <acronym id='rwu9m'><em id='rwu9m'></em><td id='rwu9m'><div id='rwu9m'></div></td></acronym><address id='rwu9m'><big id='rwu9m'><big id='rwu9m'></big><legend id='rwu9m'></legend></big></address>

        <dl id='rwu9m'></dl>

      1. <i id='rwu9m'><div id='rwu9m'><ins id='rwu9m'></ins></div></i>
        <fieldset id='rwu9m'></fieldset>

            <span id='rwu9m'></span>

            Linux远程登录和无密码登录方法

            • 时间:
            • 浏览:12
            • 来源:124软件资讯网

                一、远程登录要领

                SSH 是一种宁静通道协议 , 主要用来远程登录  。在 RHEL 5 系统中使用的是 OpenSSH 服务器由 openssh  , openssh-server 等软件包提供的 ( 默认已经安装 )  ,并以将 sshd 添加为尺度的系统服务  。 使用要领如下:

                代码如下:

                $ ssh host

                $ ssh username@host

                $ ssh -p 222 username@host

                -p: 指定会见端口 ; 若是省略该参数 , 则默认会见 SSH 服务的默认端口 22;

                若是是第一次登录对方主机 , 则系统会泛起一下提醒 :

                代码如下:

                The authenticity of host 'host(192.168.0.21)' can't be established.

                RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

                Are you sure you want to continue connecting (yes/no)?

                这段话是说  ,无法确认 host 主机的真实性 ,只知道它的公钥指纹  ,问你还想继续毗连吗?

                输入 yes 之后  ,系统会泛起一句提醒  ,表现 host 主机已经获得认可  。

                代码如下:

                Warning: Permanently added 'host, 192.168.0.21 ' (RSA) to the list of known hosts.

                然后要求输入密码:

                代码如下:

                $ Password: (enter password)

                此时  ,若是神秘准确 ,就可以登录了  。

                二、无密码登录要领

                在信托情况下  ,若是每次远程登录时  ,都要输入密码  ,感受太铺张时间了  ,尤其是密码很庞大、维护的服务器比力多的情形下  。

                于是有了正常需求:不用输入密码即可实现远程登录  。

                实现步骤如下:

                1 、当地天生 一对秘钥文件 ( 公钥和私钥 ) ;

                代码如下:

                $ ssh-keygen

                # 以上下令等价于 ssh-keygen -t rsa

                #-t: 指定密钥的类型 , 默以为 SSH-2 的 rsa 类型 ;

                运行上面的下令后 ,系统会泛起一系列提醒  ,可以一起回车 。 特殊说明  ,其中有一个问题是  , 要不要对私钥设置口令( passphrase )  ,若是担忧私钥的宁静  ,可以设置一个  。运行竣事以后  ,会在 ~/.ssh/ 目录下新天生两个文件: id_rsa.pub 和 id_rsa 。前者公钥 ,后者是私钥  。

                2 、将公钥传送到远程主机 host 上面 ;

                代码如下:

                $ ssh-copy-id user@host

                经由以上两步之后 ,就可以实现无密码远程登录了 ( 远程主机将用户的公钥生存在 ~/.ssh/authorized_keys 文件中 )  。

                三、常见问题:

                1、 天生密钥并上传至远程主机后 ,仍然无法实现无密码登录?

                打开远程主机的 /etc/ssh/sshd_config 这个文件  ,以下几行作废注释  。

                代码如下:

                #RSAAuthentication=yes

                #PubkeyAuthentication=yes

                #AuthorizedKeysFile=.ssh/authorized_keys

                然后  ,重启远程主机的 ssh 服务  。

                代码如下:

                #ubuntu 系统

                $ service ssh restart

                #debian 系统

                $ /etc/init.d/ssh restart

                2 、执行 ssh-copy-id 下令时 ,远程服务器的 SSH 服务端口不是 22  ,如下:

                代码如下:

                $ ssh-copy-id nameB@machineB

                ssh: connect to host machineB port 22: Connection refused

                则使用如下下令:

                代码如下:

                $ ssh-copy-id "-p 22000 nameB@machineB"

                四、增补内容:

                代码如下:

                $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.2

                $ ssh-copy-id -u eucalyptus -i /home/ eucalyptus/.ssh/id_rsa.pub eucalyptus@remote_host

                #-u : 给 eucalyptus 用户 设置 无密码上岸

                # -i : 当没有值通报时或 ~/.ssh/identity.pub 文件不行会见 ( 不存在 ) ,ssh-copy-id 将显示 如下错误

                /usr/bin/ssh-copy-id: ERROR: No identities found

                SSH 提供两种方式的登录验证:

                1 、密码验证:以服务器中当地系统用户的登录名称  ,密码举行验证  。

                2 、秘钥对验证:要求提供相匹配的秘钥信息才气通过验证  。通常先在客户机中建立一对秘钥文件 ( 公钥和私钥 )  ,然后将公钥文件放到服务器中的指定位置  。

                注重:当密码验证和私钥验证都启用时  ,服务器将优先使用秘钥验证  。

                五、SSH服务的设置文件 :

                sshd 服务的设置文件默认在 /etc/ssh/sshd_config  ,准确调整相关设置项 ,可以进一步提高 sshd 远程登录的宁静性  。

                设置文件的内容可以分为以下三个部门:

                复制代码

                代码如下:

                #SSH服务器监听的选项

                #监听的端口

                Port 22

                #使用SSH V2协议

                Protocol 2

                #监听的地址为所有地址

                ListenAdderss 0.0.0.0

                #//克制DNS反向剖析

                UseDNS no

              #用户登录控制选项

                #是否允许root用户登录

                PermitRootLogin no

                #是否允许空密码用户登录

                PermitEmptyPasswords no

                #登录验证时间(2分钟)

                LoginGraceTime 2m

                #最大重试次数

                MaxAuthTries 6

                #只允许user用户登录  ,与DenyUsers选项相反

                AllowUsers user

              #登录验证方式

                #启用密码验证

                PasswordAuthentication yes

                #启用秘钥验证

                PubkeyAuthentication yes

                #指定公钥数据库文件

                AuthorsizedKeysFile .ssh/authorized_keys

                检察 SSH 服务状态下令: /etc/init.d/sshd status

                重新启动 SSH 服务下令: /etc/init.d/sshd restart

                检察 ssh 软件的版本号下令: $ ssh -V

                OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 # 讲明该系统正在使用 OpenSSH

                ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu # 讲明该系统正在使用 SSH2

                当远程主机的公钥被接受以后  ,它就会被生存在文件 $HOME/.ssh/known_hosts 之中  。下次再毗连这台主机 ,系统就会认出它的公钥已经生存在当地了  ,从而跳过忠告部门 ,直接提醒输入密码 。

                每个 SSH 用户都有自己的 known_hosts 文件  ,此外系统也有一个这样的文件  ,通常是 /etc/ssh/ssh_known_hosts ,生存一些对所有用户都可信任的远程主机的公钥 。