#^sshСодержание
ssh -l username ...
- подключиться как пользователь такой-то.
Permission denied (publickey)
Вообще, набор тем для проверки:
https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickeyЕсли при
ssh -vT git@example.server.name
получается много всего вроде бы ок, а в конце:
debug1: send_pubkey_test: no mutual signature algorithm
debug1: No more authentication methods to try.
git@example.server.name: Permission denied (publickey).
Вероятно, обновили ssh на версию, которая перестала по умолчанию признавать тип ключа, который используется. По нынешним временам это ssh-rsa. Так что надо включить их поддержку в конфиге или в конкретной команде:
PubkeyAcceptedKeyTypes +ssh-rsa
ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' example.server.name
И всё станет ок, хотя это и считается небезопасным. По крайней мере, можно воспользоваться этим, чтобы загрузить более надёжный ключ.
(Заодно советуют добавлять
HostkeyAlgorithms +ssh-rsa
. Ну, про запас сохраню :))
О выборе вида ключа -
https://www.ssh.com/academy/ssh/keygen#choosing-an-algorithm-and-key-sizeЗапуск команды при подключении по ssh
попробуйте в ~/.ssh/authorized_keys перед ключем добавить замечательные команды
command="ваш скрипт" и куча опций на выбор no-port-forwarding no-X11-forwarding no-agent-forwarding no-pty и так далее man ssh
при подключении по ssh будет запускаться только скрипт [2014-09-29 Пн 20:22]
Сжатие ssh-трафика, инициируемое со стороны ssh-клиента.
Рулят, если вы туннелируете трафик по ssh, используете с той стороны ncurses или многотекста. Сильно много музыку по scp вы не сожмете, а вот пробрасывать иксы по ssh или использовать VNC через туннель становится обыденным и вполне комфортным делом.
В конец файла /etc/ssh/ssh_config добавляем 2 строки:
Compression yes
CompressionLevel 9
Применится к новым соединениям, вроде.
Port knocking
This is sample output - yours may be different.
Knock on ports to open a port to a service (ssh for example) and knock again to close the port. You have to install knockd.
See example config file below.
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Быстро настроить логин по ключу
Если нет ключей, то генерируем:
ssh-keygen
Раньше нужно было
apt-get install ssh-copy-id
, но сейчас (2023-04-06) оно не отдельный пакет, просто есть.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@some.server.org
SSH через прокси - Сorkscrew
(впервые нашла тему [2010-08-03 Вт])
Отредактировать файл
~/.ssh/config
Host myhost
ProxyCommand corkscrew proxy-address proxy-port %h %p
на место %h подставится адрес хоста, на место %p - порт.
Если потребуется аутентификация прокси, то необходимо создать файл (например,
~/.ssh/proxyauth
) и записать в нём строчку:
username:password
Сам же конфиг SSH изменится так:
Host myhost.zone
ProxyCommand corkscrew proxy-address proxy-port %h %p ~/.ssh/proxyauth
После этого можно спокойно коннектиться на нужный хост:
ssh myhost
SSH через tor
В конфиг:
Host shortname
HostName longlonglongname.onion
ProxyCommand socat - SOCKS4A:localhost:%h:%p,socksport=9050
Port 11111
Альтернативный вариант с netcat, только измененная строка:
ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p