• linux下ssh使用rsa验证登陆MACOX


    由于项目的需求,我这边ubuntu下常常需要SSH访问另外一台MACOS。
    每次输入密码有点烦,就想到RSA公钥和密钥验证的方法。
    像所有教程上讲的一样,本机执行
    gong@hzsx:~$ ssh-keygen -t rsa
    将公钥拷贝到MACOS的/tmp下,并给其他人以读权限:
    gong@hzsx:~$ scp .ssh/id_rsa.pub git@192.168.1.123:/tmp 
    git@192.168.1.123's password: 
    id_rsa.pub                                    100%  390     0.4KB/s   00:00
    于是登陆了MACOS,这里需要做一些准备工作。
    MACOS用户目录下没有.ssh目录。更不用说.ssh下authorized_keys文件了。
    dev-mini:~ devone$ mkdir .ssh
    dev-mini:~ devone$ sudo chmod 740 /tmp/id_rsa.pub
    dev-mini:~ devone$ sudo cat /tmp/id_rsa.pub >> /home/devone/.ssh/authorized_keys
    dev-mini:~ devone$ sudo chmod 740 /home/devone/.ssh/authorized_keys
    dev-mini:~ devone$ exit
    为了以后ssh访问方便 我在本机添加一个配置文件
    gong@hzsx:~$ cd .ssh/
    gong@hzsx:~/.ssh$ vim config
    添加以下内容
    Host dev-mini
    HostName dev-mini.local
    User devone
    IdentityFile ~/.ssh/id_rsa
    以后ssh访问MAC OS,我就可以直接
    gong@hzsx:~/.ssh$ ssh dev-mini
    但是还是让输入密码。
    我想应该是MAC OS上sshd_config的配置问题。不是ssh_config哦。
    输密码进去
    dev-mini:~ devone$ sudo vim /etc/sshd_config
    修改后如下:
    #    $OpenBSD: sshd_config,v 1.89 2013/02/06 00:20:42 dtucker Exp $

    # This is the sshd server system-wide configuration file.  See
    # sshd_config(5for more information.

    # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

    # The strategy used for options in the default sshd_config shipped with
    # OpenSSH is to specify options with their default value where
    # possible, but leave them commented.  Uncommented options override the
    default value.

    # See sshd_config(5for details on setting the Port and Listen values on Mac OS X
    Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::

    # The default requires explicit activation of protocol 1
    Protocol 2

    # HostKey for protocol version 1
    #HostKey /etc/ssh/ssh_host_key
    # HostKeys for protocol version 2
    HostKey /etc/ssh_host_rsa_key
    HostKey /etc/ssh_host_dsa_key
    HostKey /etc/ssh_host_ecdsa_key

    # Lifetime and size of ephemeral version 1 server key
    KeyRegenerationInterval 1h
    ServerKeyBits 1024

    # Logging
    # obsoletes QuietMode and FascistLogging
    SyslogFacility AUTHPRIV
    LogLevel INFO

    # Authentication:

    LoginGraceTime 2m
    PermitRootLogin yes
    StrictModes no
    #MaxAuthTries 6
    #MaxSessions 10

    RSAAuthentication yes
    PubkeyAuthentication yes

    # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
    # but this is overridden so installations will only check .ssh/authorized_keys
    AuthorizedKeysFile    .ssh/authorized_keys

    #AuthorizedPrincipalsFile none

    #AuthorizedKeysCommand none
    #AuthorizedKeysCommandUser nobody

    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
    RhostsRSAAuthentication no
    # similar for protocol version 2
    HostbasedAuthentication no
    # Change to yes if you don't trust ~/.ssh/known_hosts for
    # RhostsRSAAuthentication and HostbasedAuthentication
    #IgnoreUserKnownHosts no
    # Don't read the user's ~/.rhosts and ~/.shosts files
    IgnoreRhosts yes

    # To disable tunneled clear text passwords both PasswordAuthentication and
    # ChallengeResponseAuthentication must be set to "no".
    PasswordAuthentication yes
    PermitEmptyPasswords no

    # Change to no to disable s/key passwords
    ChallengeResponseAuthentication no

    # Kerberos options
    #KerberosAuthentication no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes

    # GSSAPI options
    #GSSAPIAuthentication no
    #GSSAPICleanupCredentials yes
    #GSSAPIStrictAcceptorCheck yes
    #GSSAPIKeyExchange no

    # Set this to 'yes' to enable PAM authentication, account processing, 
    # and session processing. If this is enabled, PAM authentication will 
    # be allowed through the ChallengeResponseAuthentication and
    # PasswordAuthentication.  Depending on your PAM configuration,
    # PAM authentication via ChallengeResponseAuthentication may bypass
    # the setting of "PermitRootLogin without-password".
    # If you just want the PAM account and session checks to run without
    # PAM authentication, then enable this but set PasswordAuthentication
    # and ChallengeResponseAuthentication to 'no'.
    # Also, PAM will deny null passwords by default.  If you need to allow
    null passwords, add the "    nullok" option to the end of the
    # securityserver.so line in /etc/pam.d/sshd.
    UsePAM yes

    #AllowAgentForwarding yes
    #AllowTcpForwarding yes
    #GatewayPorts no
    X11Forwarding yes
    #XauthLocation xauth # Default is to search $PATH (set by launchd(8)).  It is recommended that a full path be provided.
    X11DisplayOffset 10
    #X11UseLocalhost yes
    PrintMotd no
    PrintLastLog yes
    TCPKeepAlive yes
    #UseLogin no
    UsePrivilegeSeparation yes        # Default for new installations.
    #PermitUserEnvironment no
    #Compression delayed
    #ClientAliveInterval 0
    #ClientAliveCountMax 3
    #UseDNS yes
    #PidFile /var/run/sshd.pid
    #MaxStartups 10:30:100
    #PermitTunnel no
    #ChrootDirectory none
    #VersionAddendum none

    # pass locale information
    AcceptEnv LANG LC_*

    # no default banner path
    #Banner none

    override default of no subsystems
    Subsystem    sftp    /usr/libexec/sftp-server

    # Example of overriding settings on a per-user basis
    #Match User anoncvs
    #    X11Forwarding no
    #    AllowTcpForwarding no
    #    ForceCommand cvs server
    尤其注意这几个路径
    HostKey /etc/ssh_host_rsa_key
    HostKey /etc/ssh_host_dsa_key
    HostKey /etc/ssh_host_ecdsa_key
    中间不是 /etc/ssh/ssh_host_rsa_key
    dev-mini:~ devone$ exit
    gong@hzsx:~$ ssh dev-mini
    dev-mini:~ devone$
    终于搞定了。
  • 相关阅读:
    28. Implement strStr()(KMP字符串匹配算法)
    60. Permutation Sequence(求全排列的第k个排列)
    47. Permutations II (全排列有重复的元素)
    46. Permutations (全排列)
    3. Longest Substring Without Repeating Characters(最长子串,双指针+hash)
    Python 一行代码实现并行
    1. Two Sum
    236. Lowest Common Ancestor of a Binary Tree(最低公共祖先,难理解)
    ssm项目配置多个数据源
    SpringMVC架构实现原理
  • 原文地址:https://www.cnblogs.com/zzugyl/p/3761620.html
Copyright © 2020-2023  润新知