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