SSH


Установка ssh соединения с виртуальной машиной

Сервер

  1. Узнаем 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
...
  1. Проверяем работает ли демон
    
    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
    ...
     

Клиент

  1. Копируем публичный ключ на сервер
    
    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.
    
     
  2. Пробуем подключиться
    
    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 пльзователем

  1. На хосте задаем пароль root-у если еще не задан

sudo passwd
  1. Разрешаем вход под рутом

$ cat /etc/ssh/sshd_config | grep Root
...
PermitRootLogin yes
...
  1. Пробуем подключиться

$ ssh root@192.168.1.42
  1. Закидываем ключик пользователю root, чтоб пароль не вводить

$ ssh-copy-id root@192.168.1.42
  1. Задаем алиас в 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

Баги/Проблемы

Виснет SSH соединение


vim /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 120

/etc/init.d/ssh restart