• ssh (免密码登录、开启服务)


    ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Unbutun为例。

    有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。


    1.在A机下生成公钥/私钥对。

    [chenlb@A ~]$ ssh-keygen -t rsa -''


    -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
    它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

    ``````````````

    2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。

    [chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub 
    chenlb@192.168.1.181's password:
    id_rsa.pub                                    100%  223     0.2KB/s   00:00


    由于还没有免密码登录的,所以要输入密码。

    3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。

    [chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
    [chenlb@B ~]$ chmod 600 .ssh/authorized_keys

     

    一步搞定:

    cat ~/.ssh/id_rsa.pub | ssh -l remoteuser remoteserver.com 'cat >> ~/.ssh/authorized_keys'

    `````````````````

    替代以上步骤的快捷方式:

    通过ssh-copy-id -i 拷贝公钥到指定机器,注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中

    [chenlb@B ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub chenlb@192.168.1.181
    [chenlb@B ~]$
    1. Now try logging into the machine, with "ssh 'remote-host'", and check in:
    2. .ssh/authorized_keys
    3. to make sure we haven't added extra keys that you weren't expecting.


    authorized_keys的权限要是600

    4.A机登录B机。

    [chenlb@A ~]$ ssh 192.168.1.181
    The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
    RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.
    Last login: Thu Jul  3 09:53:18 2008 from chenlb
    [chenlb@B ~]$


    第一次登录是时要你输入yes。

    现在A机可以无密码登录B机了。

    小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

    想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

    参考:SSH-KeyGen 的用法 http://blog.163.com/chen98_2006@126/blog/static/158584272007101862513886/

    原理图:

    ssh -v remote_host 可查看ssh登录步骤详情

    service sshd start //开启ssh服务

    service sshd stop //关闭ssh服务

     ssh免密码登录失败的可能原因:

    1.服务器未开启sshd免密码登录

    /etc/ssh/sshd_config文件修改了吗?下面几行注释去掉
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

    2.权限

    通过ssh -v remote_host 调试

    可以看到远端server为返回认证信息

    查看remote_server的登录日志  /var/log/secure

    由此日志,可以是/root目录的权限不对

    所有用户的HOME目录应该是700权限,否则会引起很多问题,这个问题同样是由于这个原因

    最终,执行chmod 700 root后解决

    开启ssh服务

    1.查看是否有sshd_config
       cat /etc/ssh/sshd_config  //查看是否有sshd_config文件
    2.如果没有进行安装
        sudo apt-get install openssh-server  //安装sshd-server,Ubuntu缺省安装了openssh-client,如果你的没有安装,用apt-get install 进行安装即可。
    3.查看sshsever是否启动
       ps -e |grep ssh 
       1207 ?        00:00:00ssh-agent    #客户端
     21834 ?        00:00:00sshd             #服务器
       如果看到sshd则表示sshserver已经启动,如果只有ssh-agent,则表示没有启动,用
       sudo /etc/init.d/ssh start 启动sshserver
    4.ssh-server的配置文件位于 /etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后用以下命令重启SSH服务:
        sudo /etc/init.d/ssh restart
    5. 还可以用sudo netstat -tlp 命令来检测, 如果看到:
        tcp6       0      0 [::]:ssh                [::]:*
        就表示sshserver启动正常。
       通过客户端就可以访问了。
     
     
  • 相关阅读:
    jquery实现动态五角星评分
    jquery实现动态五角星评分
    三个水桶(看了三遍,想了五遍!)
    三个水桶(看了三遍,想了五遍!)
    三个水桶(看了三遍,想了五遍!)
    复制一个5G文件只需要两秒,全网最牛方法!
    复制一个5G文件只需要两秒,全网最牛方法!
    Symmetric Multiprocessor Organization
    smaller programs should improve performance RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构 区别示例
    mysqli_multi_query($link, $sql_w);
  • 原文地址:https://www.cnblogs.com/Dhouse/p/6567495.html
Copyright © 2020-2023  润新知