Security

gvfs-mount 自動密碼

  • June 8, 2014

我想為 gvfs 掛載創建快捷方式(我更喜歡從 shell 掛載)。為此,不必輸入ftp://sftp://連接的密碼是非常必要/方便的。目前我知道的唯一方法是:

echo 12345 | gvfs-mount sftp://user@example.com/

即使我可以使文件的權利700(甚至100),我不確定它是否相當安全。它比.netrc物品更糟糕嗎?我知道ssh-copy-id,但我無法在我的大多數sftp伺服器上訪問 shell。

我的方法有更好的(標準)替代方案嗎?他們儲存密碼時做什麼nautilus/做什麼?caja

expect每次要連接時,您都可以使用類似的東西來提供憑據。它不是超級安全,但可以為您提供您想要的。

#!/usr/local/bin/expect --
set timeout -1
spawn gvfs-mount {args}
expect "User"
send "joe\n"
expect "Password:"
send "xxxxx\n"
expect eof

來源: gvfs-mount 指定使用者名密碼

我和你一樣,我喜歡從命令行掛載/解除安裝我的文件系統。

關於標準輸入選項

我不確定它是否相當安全。它比 .netrc 項目更糟糕嗎?

您應該知道,在許多系統上,程序名稱和命令行參數對所有使用者都是可見的。例如,在 Linux 中,請grep -a . /proc/*/cmdline務必查看所有內容。

也就是說,在包括 bash 在內的某些 shell 中,echo它是一個內置命令,因此不會啟動任何程序。

所以,據我所知,應該不會比.netrc. 無論如何都要仔細檢查您的文件權限。

SFTP

您可以在gvfs-mount sftp://somehost/somepath沒有密碼的情況下工作。(我剛剛測試成功。)

推薦的解決方案是使用基於密鑰的身份驗證,而不是在任何地方儲存任何密碼。

例如,請參閱身份驗證 - 如何設置無密碼 SSH 登錄?- 詢問 Ubuntu將 ssh 密鑰複製到另一台機器的最簡單方法?- 詢問 Ubuntu(它是為 Ubuntu 編寫的,但對其他 Unices 也一樣)。

我知道 ssh-copy-id,但我無法在我的大多數 sftp 伺服器上訪問 shell。

ssh-copy-id 只是一個方便的快捷方式。您不需要 shell 訪問權限來設置基於密鑰的身份驗證,但您確實需要訪問您的主目錄。

如果您可以使用 SFTP 以互動方式訪問您的文件,那麼您很可能可以設置~/.ssh/~/.ssh/authorized_keys,除非管理員小心地阻止了這一點,但這將是他們的腳。實際上,管理員應該鼓勵使用者設置基於密鑰的身份驗證。檢查他們的政策。

如果您只需要設置一個密鑰,您只需將上面(可能)生成的公共(非私有)密鑰文件複製到名為~/.ssh/id_rsa.pub的目錄中的遠端文件並設置權限(對您來說是讀寫,對其他人沒有)。.ssh``authorized_keys``600

FTP

關於 ftp url,傳統的答案是使用https://askubuntu.com/a/359802/68124~/.netrc上解釋的 a 。

唉,它與無數 ftp 客戶端(包括新舊客戶端)配合得很好curlftpfs,但(至少在 Ubuntu 14.04 上)gvfsmount忽略了它。

也許curlftpfs會適合您的案例。主要區別在於您選擇掛載點而不是gvfs-mount計算掛載點。

curlftpfs ftp://host/ ~/mymountpoint

SFTP,再次

如果你喜歡這個curlftpfs選項,你可以考慮你的 sftp url,

sshfs host:/some/remote/path ~/myothermountpoint

如果想知道 sshfs 是否需要 shell 訪問,維基百科說:客戶端通過 SSH 文件傳輸協議(SFTP)與遠端文件系統互動,$$ 2 $$

最後一句話:對於需要顯式掛載點的工具,請考慮首先在正確的路徑上創建一個空目錄。如果您嘗試多次或更改選項,請記住fusermount -u somepath在再次嘗試安裝之前先解除安裝。

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