Идея состоит в том, чтобы запустить этот скрипт без необходимости вводить пароли хостов (записанные в файле Hosts.txt). Прямо сейчас, когда я запускаю это, я получаю Permission denied, please try again. в качестве ответа.
#!/bin/bash
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
[[ -z "${2}" ]] && IN_FILE="Hosts.txt" || IN_FILE="$2"
while IFS= read -r host; do
indication="$(sshpass -pfootbar ssh -p 2222 -o StrictHostKeyChecking=no -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$indication" "$host" >> "$OUT_FILE"
done < "$IN_FILE"
Извините, если этот вопрос непонятен, но я не очень разбираюсь в таких вещах.
Похоже, сообщение Permission denied, please try again. генерируется клиентом SSH. Пароль должен быть указан для исключения специального значения символов как $, ! и т. Д. (Ref):
sshpass -p 'footbar' ...
Или вы можете использовать файл, в котором должен храниться пароль ( ref ):
sshpass -f "/path/to/passwordfile" ...
Однако, я помню, это скрипт из моего предыдущего , где я упомянул, что: Permission denied, please try again. То, что я имел в виду, было:
Лучшее решение - (1) настройка аутентификации SSH на основе ключа , (2) создать файл ~/.ssh/config и (3) изменить скрипт для работы с этой установкой.
1. Настроить аутентификацию SSH на основе ключа (источник).
Генерировать ключи RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Перенести ключ клиента на каждый хост (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Теперь вы должны (f5) После этого вы можете отключить аутентификацию паролем (это менее безопасный метод), отредактировав файл /etc/ssh/sshd_config для каждого хост-компьютера таким образом: #PasswordAuthentication yes
PasswordAuthentication no
1.. Создайте файл ~/.ssh/config. (Read also: source )
Генерация ключей RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Генерация ключей RSA и не введите кодовую фразу:
chmod 600 ~/.ssh/config
Перенесите ключ клиента на каждый узел (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Измените права доступа к файлам:
#!/bin/bash
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
[[ -z "${2}" ]] && IN_FILE="Hosts.txt" || IN_FILE="$2"
while IFS= read -r host; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$indication" "$host" >> "$OUT_FILE"
done < "$IN_FILE"
3.A. Вы можете использовать приведенный выше скрипт с небольшой модификацией:
host-1
host-2
host-3
В этом случае файл Hosts.txt должен быть:
#!/bin/bash
# Collect the user's input, and if it`s empty set the default values
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
# Provide the list of the hosts as an array
HOSTS=("host-1" "host-2" "host-3")
for host in "${HOSTS[@]}"; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$host" "$indication" >> "$OUT_FILE"
done
Похоже, сообщение Permission denied, please try again. генерируется клиентом SSH. Пароль должен быть указан для исключения специального значения символов как $, ! и т. Д. (Ref):
sshpass -p 'footbar' ...
Или вы можете использовать файл, в котором должен храниться пароль ( ref ):
sshpass -f "/path/to/passwordfile" ...
Однако, я помню, это скрипт из моего предыдущего , где я упомянул, что: Permission denied, please try again. То, что я имел в виду, было:
Лучшее решение - (1) настройка аутентификации SSH на основе ключа , (2) создать файл ~/.ssh/config и (3) изменить скрипт для работы с этой установкой.
1. Настроить аутентификацию SSH на основе ключа (источник).
Генерировать ключи RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Перенести ключ клиента на каждый хост (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Теперь вы должны (f5) После этого вы можете отключить аутентификацию паролем (это менее безопасный метод), отредактировав файл /etc/ssh/sshd_config для каждого хост-компьютера таким образом: #PasswordAuthentication yes
PasswordAuthentication no
1.. Создайте файл ~/.ssh/config. (Read also: source )
Генерация ключей RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Генерация ключей RSA и не введите кодовую фразу:
chmod 600 ~/.ssh/config
Перенесите ключ клиента на каждый узел (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Измените права доступа к файлам:
#!/bin/bash
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
[[ -z "${2}" ]] && IN_FILE="Hosts.txt" || IN_FILE="$2"
while IFS= read -r host; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$indication" "$host" >> "$OUT_FILE"
done < "$IN_FILE"
3.A. Вы можете использовать приведенный выше скрипт с небольшой модификацией:
host-1
host-2
host-3
В этом случае файл Hosts.txt должен быть:
#!/bin/bash
# Collect the user's input, and if it`s empty set the default values
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
# Provide the list of the hosts as an array
HOSTS=("host-1" "host-2" "host-3")
for host in "${HOSTS[@]}"; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$host" "$indication" >> "$OUT_FILE"
done
Похоже, сообщение Permission denied, please try again. генерируется клиентом SSH. Пароль должен быть указан для исключения специального значения символов как $, ! и т. Д. (Ref):
sshpass -p 'footbar' ...
Или вы можете использовать файл, в котором должен храниться пароль ( ref ):
sshpass -f "/path/to/passwordfile" ...
Однако, я помню, это скрипт из моего предыдущего , где я упомянул, что: Permission denied, please try again. То, что я имел в виду, было:
Лучшее решение - (1) настройка аутентификации SSH на основе ключа , (2) создать файл ~/.ssh/config и (3) изменить скрипт для работы с этой установкой.
1. Настроить аутентификацию SSH на основе ключа (источник).
Генерировать ключи RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Перенести ключ клиента на каждый хост (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Теперь вы должны (f5) После этого вы можете отключить аутентификацию паролем (это менее безопасный метод), отредактировав файл /etc/ssh/sshd_config для каждого хост-компьютера таким образом: #PasswordAuthentication yes
PasswordAuthentication no
1.. Создайте файл ~/.ssh/config. (Read also: source )
Генерация ключей RSA и не вводить кодовую фразу:mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 4096
chmod 600 ~/.ssh/id_rsa
Генерация ключей RSA и не введите кодовую фразу:
chmod 600 ~/.ssh/config
Перенесите ключ клиента на каждый узел (обратите внимание на кавычки): ssh-copy-id "<username>@<host> -p <port_nr>"
Измените права доступа к файлам:
#!/bin/bash
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
[[ -z "${2}" ]] && IN_FILE="Hosts.txt" || IN_FILE="$2"
while IFS= read -r host; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$indication" "$host" >> "$OUT_FILE"
done < "$IN_FILE"
3.A. Вы можете использовать приведенный выше скрипт с небольшой модификацией:
host-1
host-2
host-3
В этом случае файл Hosts.txt должен быть:
#!/bin/bash
# Collect the user's input, and if it`s empty set the default values
[[ -z "${1}" ]] && OUT_FILE="WhereTheAnswearIsGoing.txt" || OUT_FILE="$1"
# Provide the list of the hosts as an array
HOSTS=("host-1" "host-2" "host-3")
for host in "${HOSTS[@]}"; do
indication="$(ssh -n "$host" 'who -b' | awk '{print $(NF-1)" "$NF}')"
printf '%-14s %s\n' "$host" "$indication" >> "$OUT_FILE"
done