通過 sftp 將文件傳輸給其他人
其他人給我的數據集太大而無法通過電子郵件、Dropbox 等發送,所以我想我們可以使用 sftp 或 scp。但是如果我不給她我機器的密碼,她怎麼能做到這一點呢?這是一次性的數據傳輸,所以我寧願不要遇到很多麻煩——如果工作量太大,我就給她我的密碼,然後在她完成文件傳輸後更改它。
您的機器可以通過 Internet 訪問嗎?
第一個障礙是您的機器可能根本無法通過 Internet 訪問!
大多數客戶端機器無法通過 Internet 直接訪問,因為它們沒有公共 IP 地址。這就像一部電話,可以呼出,但不能被呼叫。這主要是因為 IP 地址的供應有限。除非您的 ISP 支持 IPv6 或者您的配置非常非典型,否則您家中只有一個 IP 地址,這就是您的家庭路由器的地址。您的電腦可以進行傳出連接,因為家用路由器提供NAT功能。
大多數家庭路由器都可以配置為允許將傳入連接路由到本地網路上的特定機器。要允許傳入的 SSH 連接,請將埠 22 路由到您的電腦。請參閱路由器的文件以了解如何執行此操作。
如果您不走運並且您的 ISP 沒有提供公共 IP 地址,您將無法建立傳入連接。要檢查您是否有公共 IP 地址,請連接到路由器的管理界面並檢查其外部地址是否在私有範圍內(內部地址在私有範圍內,非典型配置除外)。
授予對您機器的 shell 或文件訪問權限
讓某人訪問您的機器的(相對)簡單的方法是為他們創建一個使用者帳戶。使用普通使用者帳戶,他們將能夠看到很多東西,但他們將無法修改您的文件(除非您竭盡全力使它們成為世界可寫的),而且他們不會能夠查看私有目錄中的文件(
drwx------
權限)。為提高安全性,請將帳戶配置為僅可用於通過 SFTP 操作特定目錄中的文件。這有點困難(我有點希望 OSX 提供一個易於使用的 GUI,但顯然不是);請參閱在 OS X 中創建僅遠端使用者?或如何在 Mac 上設置 SFTP 伺服器,然後讓朋友從他們的 iPhone、iPad 或其他 iDevice 上傳文件以獲取說明。
您需要啟用遠端訪問。有一個OSX 知識庫條目。僅啟用一個應該具有遠端訪問權限的使用者。不要為可能具有弱密碼的帳戶啟用遠端訪問!
在帳戶上設置一個隨機密碼,並告訴他們複製粘貼並將其保存在文件中。不要將人為選擇的密碼較弱的機器暴露在 Internet 上。您可以使用以下命令生成密碼:
</dev/urandom tr -dc A-Za-z0-9 | head -c 16; echo
逐個傳輸文件
所以,是的,通過 Internet 發送文件仍然很困難。
低技術解決方案是使用眾多文件共享網站之一。他們通過廣告賺錢,所以甚至不要考慮在沒有廣告攔截器的情況下訪問廣告,並且要非常小心您點擊的位置,因為他們可能會嘗試為您提供惡意軟體。下載文件後,檢查它是否是正確的文件:計算其 SHA-2 校驗和
sha -a256 /path/to/file
在 OSX 上,
sha256sum /path/to/file
在 Linux 上。