zoukankan      html  css  js  c++  java
  • 两个openssh间免密码登录

    以下针对的是openssh,而不是ssh,也不是ssh2。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过,操作环境为CentOS Linux release 7.0

    如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定:

    SSH2

    ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on

    OpenSSH

    OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

    本文假设被登录的远程机器名为hadoop-138-24,对应的IP192.168.138.24,使用的用户名为hadoop

    第一步,修改所有被登录机上的sshd配置文件/etc/ssh/sshd_config

    1) 将PermitRootLogin值设置为yes,也就是取掉前面的注释号#(如果不是配置root无密码登录,跳过这一步)

    2) 以下几行注释取消:

    #RSAAuthentication=yes

    #PubkeyAuthentication=yes

    #AuthorizedKeysFile=.ssh/authorized_keys

    PubkeyAuthentication仅针对ssh2,默认为yes,所以可不取消注释。

    RSAAuthentication仅针对ssh1,默认为yes,所以可不取消注释。

    AuthorizedKeysFile默认为.ssh/authorized_keys,所以也可不取消注释。

    可以通过“man sshd_config”了解到更多信息。

    查看OpenSSH的版本:

    # sshd -V

    unknown option -- V

    OpenSSH_6.4p1, OpenSSL 1.0.1e-fips 11 Feb 2013

    3) 重启sshd服务:service sshd restart

    手工启动方式:

    /usr/sbin/sshd -o pidFile=/var/run/sshd_56000.pid -f /etc/ssh/sshd_config.l

    或者:

    /usr/sbin/sshd -D -f /etc/ssh/sshd_config.l

    参数“-D”表示sshd进程不成为守护进程。

    如果不指定参数“-o”,则默认为/var/run/sshd.pid,存储了sshd守护进程的pid

    /etc/ssh/sshd_config文件中的Protocol配置项指定sshd支持的协议版本,如:

    “Protocol 2”表示为ssh2,多版本使用逗号分隔(无顺序要求):Protocol 1,2Protocol 2,1

    对于OpenSSH_5.3p1默认值为2,1。对于OpenSSH_6.4p1默认值为2

    第二步,在所有登录机上,执行以下步骤:

    1) 进入到用户HOME目录下的.ssh子目录:cd ~/.ssh

    2) 生成私钥和公钥文件:ssh-keygen -t rsa

    出现提示后,一路直接回车。成功之后,会在用户的主目录(HOME目录)下生成私钥文件id_rsa,和公钥文件id_rsa.pub。

    3) 运行ssh-copy-id,将公钥文件id_rsa.pub上传到远程被登录的机器:

    ssh-copy-id -i id_rsa.pub hadoop@hadoop-138-24

    注意,这里没有指定远程机器的目录,ssh-copy-id命令会自动将id_rsa.pub的内容放到远程机器的hadoop用户的主目录的.ssh子目录的authorized_keys文件尾。

    如果没有ssh-copy-id命令,则可以使用scp复制过去,手工追加到authorized_keys文件尾,如:scp id_rsa.pub hadoop@hadoop-138-24:/data/hadoop/.ssh(这里假设hadoop用户的HOME目录为/data/hadoop),然后登录hadoop-138-24,进入/data/hadoop/.ssh,执行:

    cat id_rsa.pub >> authorized_keys

    接下来,就可以无密码登录远程机器:ssh hadoop@hadoop-138-24。当然也可以以IP方式登录,如:ssh hadoop@192.168.138.24

    如果按上述操作的之后,仍然不能免密码登录,则检查目录.ssh的权限,如同下面这样:

    drwxrwxr-x 2 hadoop hadoop 4096 Nov 24 14:27 .ssh

    则是登录时仍然需要密码,需要去掉其他用户对.ssh目录的写权限:

    drwx------ 2 hadoop hadoop 4096 Nov 24 14:27 .ssh

    对被登录机器上的文件authorized_keys也有同样的要求,下面这样是OK的:

    -rw------- 1 hadoop hadoop  403 Nov 24 14:27 authorized_keys

    相关参考:

    SSH2免密码登录OpenSSHhttp://blog.chinaunix.net/uid-20682147-id-4212097.html

    两个SSH2间免密码登录:http://blog.chinaunix.net/uid-20682147-id-4212099.html

    OpenSSH免密码登录SSH2http://blog.chinaunix.net/uid-20682147-id-4212094.html


  • 相关阅读:
    MySQL第五天
    phprpc
    最近数据库不怎么太平
    dumpfile参数,linux和windows下稍有不同
    impdp 时无反应
    修改IP后,重新config EM
    ORA00054: resource busy and acquire with NOWAIT specified
    测试修改DBID手记
    如何关闭任务计划
    文件夹打开变成寻找框如何解决
  • 原文地址:https://www.cnblogs.com/aquester/p/9891558.html
Copyright © 2011-2022 走看看