Установка ssh соединения с виртуальной машиной
Сервер
- Узнаем ip адрес
ifconfig
...
enp2s0 Link encap:Ethernet HWaddr d8:cb:8a:e4:1f:28
inet addr:192.168.16.128 Bcast:192.168.16.255 Mask:255.255.255.0
...
или
$ ip addr
...
inet 192.168.16.11/24 brd 192.168.16.255 scope global dynamic enp0s3
valid_lft 3445sec preferred_lft 3445sec
inet6 fe80::a00:27ff:fe89:bdbe/64 scope link
valid_lft forever preferred_lft forever
...
- Проверяем работает ли демон
service sshd status ... Программа 'sshd' на данный момент не установлена. Вы можете установить её, выполнив: sudo apt install openssh-server
sudo apt install openssh-server ... service sshd status ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-04-07 12:43:32 MSK; 19min ago ...
Клиент
- Копируем публичный ключ на сервер
ssh-copy-id 192.168.16.102 ... The authenticity of host '192.168.16.102 (192.168.16.102)' can't be established. ECDSA key fingerprint is SHA256:5ve03MVbbaSrllefof6NAhrWbCQCqYhOPH8HZbU8ENM. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys avis@192.168.16.102's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '192.168.16.102'" and check to make sure that only the key(s) you wanted were added.
- Пробуем подключиться
ssh 192.168.16.102 ... Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-116-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 44 packages can be updated. 14 updates are security updates. Last login: Sat Apr 7 12:53:36 2018 from 192.168.16.128
Если имя пользователя отличается от USER в env, подключаться нужно указать имя пользователя(или рута):
ssh avis21@192.168.16.102
ssh root@192.168.16.102
Вход на сервер под root пльзователем
- На хосте задаем пароль root-у если еще не задан
sudo passwd
- Разрешаем вход под рутом
$ cat /etc/ssh/sshd_config | grep Root
...
PermitRootLogin yes
...
- Пробуем подключиться
$ ssh root@192.168.1.42
- Закидываем ключик пользователю root, чтоб пароль не вводить
$ ssh-copy-id root@192.168.1.42
- Задаем алиас в ssh конфиге
$ vim ~/.ssh/config
...
Host vb
User root
Hostname 192.168.1.42
Port 22
...
Установка соединения с codeanywhere
1. После запуска нового контейнера, проверяем что установлен и запущен ssh демон в контейнере
service sshd status
не работает так что по старинке
ps aux | grep sshd
...
root 462 0.0 0.4 93056 1228 ? Ss 06:24 0:00 sshd: cabox [priv]
cabox 473 0.0 0.2 93056 644 ? S 06:24 0:00 sshd: cabox@notty
root 475 0.0 0.4 93056 1224 ? Ss 06:24 0:00 sshd: cabox [priv]
cabox 486 0.0 0.2 93056 636 ? S 06:24 0:00 sshd: cabox@notty
root 490 0.0 0.4 93056 1232 ? Ss 06:24 0:00 sshd: cabox [priv]
cabox 501 0.0 0.2 93056 676 ? S 06:24 0:00 sshd: cabox@pts/0
root 4029 0.0 0.9 65456 2604 ? Ss 06:31 0:00 /usr/sbin/sshd -D
root 6381 0.0 1.2 90400 3156 ? Ss 06:37 0:00 sshd: cabox [priv]
cabox 6390 0.0 0.3 90400 944 ? S 06:37 0:00 sshd: cabox@pts/1
root 6448 0.0 1.2 90400 3156 ? Ss 06:55 0:00 sshd: cabox [priv]
cabox 6457 0.0 0.3 90400 1044 ? S 06:55 0:00 sshd: cabox@pts/2
cabox 6701 0.0 0.4 12888 1056 pts/2 S+ 06:59 0:00 grep --color=auto sshd
2. Копируем и вставляем публичный ключ
у себя на хосте машине
cat ~/.ssh/id_rsa.pub
в контейнере
echo "[ключ]" >> ~/.ssh/authorized_keys
3. Смотрим хост и порт машины
ПКМ по контейнеру -> info
В моем случае
SSH access on host13.codeanyhost.com -p 31855
4. Пробуем подключиться
ssh cabox@host13.codeanyhost.com -p 31855
Баги/Проблемы
vim /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 120
/etc/init.d/ssh restart