Ssh

埠轉發時無法強制使用無密碼 ssh 身份驗證

  • July 13, 2013

我完全不知道是什麼阻止我的本地機器驗證從遠端伺服器轉發的連接。

我已經在這裡閱讀了大量關於這個的文章,我發誓我已經嘗試過幾乎所有的東西。

我一直在關注的指南可以在這裡找到:http ://www.zeespencer.com/articles/building-a-remote-pairing-setup/

基本上我堅持的地方是強制無密碼身份驗證。如果我在 sshd_config 中允許密碼,當我連接到 pair@pair-server 時,系統會提示我輸入本地使用者密碼並且能夠遠端登錄,所以我被轉發了。但是,只要我把它關掉,我就會得到以下資訊

  λ   ssh pair@pair-server 
Permission denied (publickey).
Connection to pair-server closed.

此處詳細輸出:https ://gist.github.com/anonymous/0c2b3892596d5ded6abb

我目前在 pair@pair-server 的 .ssh/authorized_keys 中有我的本地使用者 key.pub,它們是指向 ssh 回 localhost 的命令。pair@pair-server 有它自己的密鑰,在我的電腦上,我已將 pair@pair-server 的 key.pub 添加到 .ssh/authorized_keys。

sshd_config 中看似相關的行:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
UseLogin no

配對伺服器上 /etc/pam.d/sshd 中的帳戶和會話設置:

account    required     pam_nologin.so
account    include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth

密碼認證配置:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

.ssh 權限:

node-v0.8.25|ruby-1.9.3-p392|~|
  λ   ls -lhd .ssh
drwx------ 2 dan dan 4.0K Jul 10 19:49 .ssh

你:

  λ   lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 13.04
Release:    13.04
Codename:   raring

OpenSSH 客戶端版本:

  λ   ssh -V
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012

感謝您嘗試幫助大家,非常感謝。無論如何,似乎 ssh-agent 是罪魁禍首。我忘記了在生成我自己的之前,我必須檢查是否有之前生成的實例已經在執行。我有大約 9 個在執行。我不太了解 bash,但在這裡我添加到遠端伺服器上的 .bashrc 中的 3 行使其正常工作:

pkill ssh-agent
exec "$(ssh-agent)"
ssh-add $HOME/.ssh/pair_key

你的權限正常嗎?.ssh 必須為 700。

引用自:https://unix.stackexchange.com/questions/82739