亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不覆蓋TTY的情況下將密碼傳遞給su/sudo/ssh?

如何在不覆蓋TTY的情況下將密碼傳遞給su/sudo/ssh?

當年話下 2019-07-17 10:03:52
如何在不覆蓋TTY的情況下將密碼傳遞給su/sudo/ssh?我正在編寫一個C Shell程序su或sudo或ssh..他們都希望自己的密碼在控制臺輸入(TTY),而不是stdin或命令行。有人知道解決辦法嗎?設置無密碼sudo不是一種選擇。期待可能是一種選擇,但在我的精簡系統中不存在。
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

對于sudo,有一個-S選項可以接受標準輸入中的密碼。下面是男子的參賽名單:

    -S          The -S (stdin) option causes sudo to read the password from
                the standard input instead of the terminal device.

這將允許您運行如下命令:

echo myPassword | sudo -S ls /tmp

至于ssh,我曾多次嘗試自動化/腳本它的使用,但沒有成功。似乎沒有任何內置方式可以在沒有提示的情況下將密碼傳遞到命令中。正如其他人所提到的,“期待“實用程序似乎旨在解決這一困境,但最終,建立正確的私鑰授權是正確的方式,當試圖自動化這一點。


查看完整回答
反對 回復 2019-07-17
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

我編寫了一些AppleScript,它通過對話框提示輸入密碼,然后構建一個自定義bash命令,如下所示:

echo <password> | sudo -S <command>

我不確定這是否有幫助。

如果sudo接受了一個預先加密的密碼,那么我就可以在我的腳本中加密它,而不用擔心周圍會出現明文密碼。不過,這對我和我的情況都適用。


查看完整回答
反對 回復 2019-07-17
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

這可以通過在要連接的目標主機上設置公鑰/私鑰來完成。第一步是為在本地主機上運行腳本的用戶生成ssh鍵,方法是執行:

ssh-keygen
Enter file in which to save the key (/home/myuser/.ssh/id_rsa): <Hit enter for default>
Overwrite (y/n)? y

然后輸入一個空白密碼。之后,將ssh鍵復制到要連接到的目標主機上。

ssh-copy-id <remote_user>@<other_host>
remote_user@other_host's password: <Enter remote user's password here>

注冊ssh密鑰后,您將能夠執行一個靜默操作。ssh remote_user@other_host你當地的主人。


查看完整回答
反對 回復 2019-07-17
  • 3 回答
  • 0 關注
  • 896 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號