我需要保護服務器的登錄和密碼。
我有一個Bash腳本,為了作業,我必須在第三方服務上運行它。 該腳本包含一個帶有登錄名和密碼的 curl 命令,用于向我的服務器傳輸資料。
curl -T filedata.txt ftp://login:[email protected]/
如何在開放原始碼中安全地存盤我的密碼?curl能在Bash中加密嗎?
在UBUNTU終端中,是否有其他方法可以將檔案傳輸到服務器上進行作業?
uj5u.com熱心網友回復:
使用SSH密鑰是一種不使用密碼而訪問Linux服務器的好方法,
要求:1.
要求
1.你的目標服務器應該已經啟用了SSH功能
你應該已經生成了公共和私人SSH密鑰(只需使用命令ssh-keygen -t rsa)。
2. 你應該在服務器上有一個用戶賬戶和密碼。即使是root賬戶也行。
3. 你應該知道服務器的IP地址
方法1:將密鑰復制到服務器上
ssh-copy-id -i ~/.ssh/id_rsa.pub YOUR_USER_NAME@IP_ADDRESS_OF_THE_SERVER。
方法2:如果服務器沒有用戶名和密碼認證,只允許SSH公鑰認證。
你可以要求終端用戶提供她/他的公鑰。現在你可以做的是創建.ssh/authorized_keys目錄,然后將公鑰復制到這里。
- 獲取公鑰 。
要求終端用戶通過輸入以下命令來提供公鑰:
你可以通過電子郵件或資訊傳遞工具得到這個文本。通常情況下,這不應該是一個問題。
請記住,你必須在最終用戶的主目錄下創建這些新的目錄和檔案,而不是在你自己的(root/sysadmin)上。
cat ~//ssh/authorized_keys?
cat ~/.ssh/id_rsa.pub。
它將顯示一個以ssh-rsa開頭的長的隨機字串:ssh- rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7 D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh iSTP username@hostname
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
現在用文本編輯器打開這個/home/user_name/.ssh/authorized_keys檔案,在這里添加用戶的公鑰:vim /home/user_name/.ssh/authorized_keys。
保存并關閉該檔案。它就快準備好了。
- 為檔案設定適當的權限 。
在ssh檔案上擁有適當的檔案權限是非常重要的,否則你會看到諸如 "拒絕許可"(publickey)之類的錯誤。
首先,確保設定正確的檔案權限:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
你用root或你自己的管理賬戶為其他用戶創建了這些檔案。你需要將所有權改為用戶:chown -R username:username /home/username/.ssh
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/319778.html
標籤:
