Openssh

Master 拒絕會話請求:權限被拒絕

  • September 27, 2017

我正在嘗試設置 SSH 多路復用,但我遇到了一個錯誤,並且在 Google 上有 0 次點擊以獲取確切的錯誤消息。

我創建~/.ssh/config了以下內容:

Host *
ControlPath ~/.ssh/master-%r@%h:%p

然後,我通過執行創建了主連接:

ssh -vMM user@host.example.com

這似乎成功地創建了多路復用套接字:

...
Authenticated to host.example.com ([1.2.3.4]:22).
debug1: setting up multiplex master socket
debug1: channel 0: new [/home/user/.ssh/master-user@host.example.com:22]
debug1: channel 1: new [client-session]
debug1: Entering interactive session.
...

然後,我嘗試在另一個視窗中通過 ssh 執行命令:

ssh -v user@host.example.com ls

但是,這似乎無法使用多路復用套接字:

OpenSSH_7.5p1, OpenSSL 1.1.0f  25 May 2017
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
Master refused session request: Permission denied
debug1: Connecting to host.example.com [1.2.3.4] port 22.
...

什麼可能導致Master refused session request: Permission denied錯誤發生?


~/.ssh編輯:和的權限~/.ssh/config分別是 700 和 644,所以我在那裡看不到問題。~/.ssh/master-*不存在,我猜它是一個抽象的 UNIX 套接字(因此實際上並不存在於文件系統中)?但是,這仍然不能解釋“拒絕訪問”錯誤。

另外,我注意到在嘗試建立第二個連接時,主連接會列印:

debug1: channel 2: new [mux-control]
debug1: permanently_drop_suid: 0
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
debug1: channel 2: free: mux-control, nchannels 3

也許這是相關的。我使用未加密的 SSH 密鑰進行連接,所以我不明白為什麼 SSH 需要詢問密碼。

我已經弄清楚是什麼導致了“訪問被拒絕”錯誤。

~~預設情況下,~~當另一個 SSH 程序想要使用現有的多路復用會話時,SSH 似乎希望以互動方式請求許可。但是,ssh-askpass我的系統上缺少用於請求權限的程序,因此 SSH 預設為“不,不授予訪問權限”,從而導致客戶端上出現“拒絕訪問”錯誤消息。

如果ssh-askpass已安裝(在 Arch Linuxx11-ssh-askpass軟體包中),則會顯示如下對話框:

選擇“確定”將允許連接嘗試繼續。

提示本身是因為我-M在master的命令行上指定了兩次造成的。引用SSH(1)

多個 -M 選項將 ssh 置於“主”模式,在接受從連接之前需要確認。

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