我的目標是創建一個bash腳本,可以將新用戶添加到Ec2並提供對ssh密鑰的訪問,但是我有一個問題。Bash腳本 - 傳遞沒有價值
這是我當前的腳本,只要需要生成私鑰/公鑰就停止腳本,因爲它要求輸入密碼。我怎樣才能配置我的腳本只是按下輸入?
#!/bin/bash
username=$1
ssh-keygen -b 1024 -f $username -t dsa
chmod 600 $username.pub
useradd $username
mkdir /home/$username/.ssh
chmod 700 /home/$username/.ssh
chown ball:ball /home/$username/.ssh
cat ball.pub >> /home/$username/.ssh/authorized_keys
chown 600 /home/.ssh/$username/authorized_keys
chown ball:ball /home/$username/.ssh/authorized_keys
[[email protected] /]# ssh-keygen -b 1024 -f ball -t dsa
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ball.
你可能想了解[分詞](HTTP://mywiki.wooledge.or g/WordSplitting)如果'$ username'包含一個空格,你的代碼將會中斷多個地方 – andlrc
這看起來有點像[XY問題](http://xyproblem.info)。 [你可以使用參數'-N''''](http://stackoverflow.com/q/10767488/1695906)告訴'ssh-keygen'你不想使用釋義。通常最好詢問實際問題,而不是嘗試解決方案。 –
你的腳本也是非常危險的 - 你至少應該測試是否實際通過了「$ 1」,所以你沒有通過這個過程破壞浩劫。就像'if [[「$ 1」==「」]];然後回顯「用法:$ 0 username」>&2;出口1; fi;' –