4.3 KiB
ssh
Подключение
ssh admin@192.168.5.3
если имя пользователя не указывать, соединение произойдет от имени локального пользователя
ssh 192.168.5.3
не стандартный порт при подключении
ssh pi@da2001.ru -p 227
не добавлять публичный ключ удаленного хоста в локальный файл known_hosts, при этом будет запрошено подтверждение подключения
ssh -o UserKnownHostsFile=/dev/null admin@192.168.1.2
не проверять публичный ключ удаленного хоста
ssh -o StrictHostKeyChecking=no admin@192.168.1.2
не добавлять публичный ключ и не проверять удаленный хост
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@192.168.1.2
выполнить команду на сервере без подключения
ssh user@host ls
выполнить локальный скрипт
ssh da2001@192.168.1.2 'python3' < test.py
scp
scp ./wlt.py pi@da2001.ru:/home/pi
использование не стандартного порта
scp -P 227 ./wlt.py pi@da2001.ru:/home/pi
ssh аутентификация по ключам
На локальном хосте linux сгенерировать пару ключей
ssh-keygen
парольную фразу можно оставить пустой, чтобы не вводить пароль каждый раз при обращении к ключу
По умолчанию ключи будут храниться в каталоге ~/.ssh в домашнем каталоге текущего пользователя. Закрытый ключ будет называться id_rsa, а связанный с ним открытый ключ – id_rsa.pub
Теперь необходимо скопировать публичный ключ на сервер, доступ к которому настраиваем
cat ~/.ssh/id_rsa.pub | ssh login@example.com "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Для дополнительной безопасности можно отключить доступ по паролю
Для этого необходимо отредактировать конфигурационный файл демона SSH raspberry
sudo nano /etc/ssh/sshd_config
Найти директиву PasswordAuthentication, раскомментировать ее и присвоить значение no
PasswordAuthentication no
Сохранить файл, закрыть.
Перезагрузить сервис
sudo systemctl restart ssh
подключение через промежуточный хост
если нужно подключиться по ssh на host2, при этом прямого подключения нет, но есть возможность подключиться через host1, можно такое подключение выполнить одной командой
ssh -J user1@host1:22 user2@host2
но в таком случае придется вводить пароль от host1 и от host2. Чтобы этого избежать можно добавить на хосты публичный ключ клиента
если добавить к подключению опции:
-o UserKnownHostsFile=/dev/null
-o StrictHostKeyChecking=no
удаленный сервер не будет проверять и не будет добавлять хеш удаленного хоста в файл known_hosts
это может быть полезно, например, когда часто меняется прошивка зондов и хеш изменяется.
Таким образом, полная команда может выглядеть так:
ssh -J pi@da2001.ru:227 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@192.168.5.3