Tôi nhận thấy câu hỏi này đã được hỏi một vài lần nhưng tôi không thể tìm thấy câu trả lời có liên quan ở bất kỳ đâu trong tìm kiếm của mình.Bash Script để SSH vào máy mà không cần nhắc mật khẩu và không sử dụng các phím
Tôi đang làm việc trong môi trường phát triển nơi an ninh không phải là vấn đề và bất kỳ ai cũng có thể đoán mật khẩu nếu suy nghĩ trong vài giây.
Điều tôi đang cố gắng làm là đơn giản. Tôi đã tạo một hàm bí danh trong tệp .bashrc cục bộ của mình và tôi muốn chức năng này tự động đăng nhập vào một máy có mật khẩu mặc định.
thực hiện hiện tại của tôi trông giống như sau:
function s() {
ssh [email protected]$1
}
Khi tôi chạy nó tôi nhận được một cái gì đó như thế này:
~]s 122
ssh [email protected]
[email protected]'s password:
Sử dụng Bash, và không sử dụng các phím RSA Tôi muốn có được điều này để sử dụng mật khẩu mặc định 'mật khẩu'.
Tôi đã thử những điều sau đây nơi IP và Người dùng đã được đặt.
Do=$(expect -c "
spawn ssh [email protected]${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}
expect \"yes/no\"
send \"yes\r\"
expect \"assword\" send \"password\"")
echo $Do
$Do
Nó cung cấp cho các lỗi follwing:
Connecting and logging into server using expect
usage: send [args] string
while executing
"send"
invoked from within
"expect "assword" send "password""
[email protected]'s password:
bash: spawn: command not found...
Sử dụng lệnh sau đây tôi có thể kết nối một máy. Nếu tôi loại bỏ tương tác, nó chỉ chạy lệnh thời gian hoạt động và đóng kết nối. Với lệnh tương tác, tôi không thể nhìn thấy những gì tôi đang gõ hoặc thực sự tương tác với máy. Bất kỳ ý tưởng?
Do=$(expect -c "spawn ssh [email protected]${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}; set timeout 4; expect \"assword\"; send \"password\n\"; expect \"test\"; send \"uptime\n\"; interact;");echo $Do;
Liệu lệnh spawn thiết lập môi trường? Nếu không thì đường dẫn sẽ không được thiết lập và nó sẽ không biết nơi để tìm 'ssh'. Thử đặt đường dẫn đầy đủ đến tệp thực thi. – Jay
Chỉ cần tự hỏi, những gì aversion của bạn để RSA phím? Điều đầu tiên tôi luôn làm khi thiết lập một hệ thống mới là cho phép một khóa RSA. – mpontillo
Tôi không muốn làm việc với các khóa RSA bởi vì tôi đang làm việc với rất nhiều máy chủ khác nhau có tuổi thọ rất hạn chế và tập lệnh này sẽ được nhiều người sử dụng. Ý tưởng là tiết kiệm thời gian bằng cách không phải nhập cùng một mật khẩu mỗi lần. Nếu tôi phải gõ mật khẩu vào mỗi lần đầu tiên tôi truy cập vào một máy mới để ssh-copy-id các phím trên nó sẽ đánh bại mục đích. – SuperTetelman