那么到现在为止,我还没有做到这一点,但我在远程服务器上创build了一个纯粹用于共享git repo访问的帐户,现在需要在每台开发机器上通过ssh设置无缝login。 我已经阅读了几篇文章,但是我没有在创build的用户帐户上有一个.ssh文件夹,所以无法将客户端密钥安装在authorized_keys文件中。 我只是创build这些文件夹和文件,以便能够安装密钥,因为我不认为这会很简单。 我正在关注这个教程的链接 ,下面是目前的sshd_config文件。 (目前密码validationlogin)。 感谢任何指针。
# This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin # 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 change a # default value. #Port 22 #Protocol 2,1 Protocol 2 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: # HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key # HostKeys for protocol version 2 #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_dsa_key # Lifetime and size of ephemeral version 1 server key #KeyRegenerationInterval 1h #ServerKeyBits 768 # Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH SyslogFacility AUTHPRIV #LogLevel INFO # Authentication: #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 RSAAuthentication yes #PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # 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, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no PasswordAuthentication yes # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no # GSSAPI options #GSSAPIAuthentication no GSSAPIAuthentication yes #GSSAPICleanupCredentials yes GSSAPICleanupCredentials yes # 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 mechanism. # Depending on your PAM configuration, this may bypass the setting of # PasswordAuthentication, PermitEmptyPasswords, and # "PermitRootLogin without-password". If you just want the PAM account and # session checks to run without PAM authentication, then enable this but set # ChallengeResponseAuthentication=no #UsePAM no UsePAM yes # Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL #AllowTcpForwarding yes #GatewayPorts no #X11Forwarding no X11Forwarding no #X11DisplayOffset 10 #X11UseLocalhost yes #PrintMotd yes #PrintLastLog yes #TCPKeepAlive yes #UseLogin no #UsePrivilegeSeparation yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #ShowPatchLevel no #UseDNS yes #PidFile /var/run/sshd.pid #MaxStartups 10 #PermitTunnel no #ChrootDirectory none # no default banner path #Banner /some/path # override default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server
更简单的方法
在你的源代码框中,确保你有一个生成的密钥,如果没有,运行ssh-keygen生成一个(例如:ssh-keygen -b 1024 -t rsa -q)
然后运行ssh-copy-id -i .ssh / id_rsa.pub user @ host
这将为你做所有的authorized_keys废话。 不过,在较早的版本中,ssh-copy-id命令不存在,您必须执行先前build议的其他方法。
是的,(几乎)是那么简单。 作为ssh服务器上的帐户,运行:
mkdir ~/.ssh cat id_dsa.pub >> ~/.ssh/authorized_keys
其中id_dsa.pub是来自其中一个客户端机器的公钥。
为了安全起见,你可能想要做一些类似于chmod 700 ~/.ssh ,虽然对于authorized_keys的使用应该是可以的。 确保您的私钥(和您的.ssh目录)具有限制性的权限。
如果遇到问题,请在客户端上运行ssh和-v选项来获取debugging信息,然后查看服务器的ssh日志(可能是/var/log/auth.log或/ var / log / secure或类似的东西,根据发行版)。