da ich gerade in Doku-Laune war, habe ich das Setup des neuen ssh-Containers auf dem Timberwolf-Server dokumentiert. Das Image steht für alle Wolf-Architekturen zur Verfügung, womit das HowTo überall funktionieren sollte. Viel Spass und immer her mit dem Feedback!
1. Image herunterladen
Auf der Portainer-Seite unter Images das Image starwarsfan/alpine-sshd:latest pullen:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/c4c81218c452a77f2feaa40f2c4876fe.png)
2. Container anlegen
Auf der Portainer-Seite unter Containers Klick auf + Add container:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/817b02044e7f9165e7f04d40e2076489.png)
Nun im neuen Fenster
- dem Container im ersten Feld einen Namen geben (bspw. ssh-access)
- im zweiten Feld das zugrundeliegende Image eintragen, welches im vorherigen Step gepullt wurde (starwarsfan/alpine-sshd:latest)
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/1232bef4ec3810174d5ba9defd1c2a03.png)
- Publish all exposed ports sollte nur dann aktiviert werden, wenn MacVLAN verwendet wird, da der Container dann eine eigene IP hat und es zu keinem Konflikt mit dem mglw. anderweitig vom Host verwendeten Port 22 kommt.
- Somit muss auf TW-Installation ohne aktiviertem MacVLAN ein höherer Port auf den ssh-Port im Container gemappt werden. Hier im Beispiel der Port 23456:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/26fafb6a5d4a0d49b578f0825023ff9f.png)
3. Volume mappings hinzufügen
Ganz nach unten scrollen und unter "Advanced container settings" Klick auf "Volumes". Dort dann Klick auf "map additional volume", so dass die Optionen für das Mapping eines Docker-Volumes eingeblendet werden. Hier kann nun das einzubindende Docker-Volume ausgewählt und ein Pfad vorgegeben werden, unter welchem es dann im laufenden Container eingebunden wird. Es empfiehlt sich hier, die Standard-Location /mnt/ für Mounts zu verwenden sowie das jeweilige Verzeichnis dort genauso zu nennen, wie das Docker-Volume heisst. Der Mount erfolgt per Default mit Schreibrechten. Wer auf Nummer sicher gehen möchte und nur lesend zugreifen will, kann den Mount auf Read-only konfigurieren. Im folgenden Screenshot wird das Edomi-Backup-Volume eingebunden:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/95e255a7ef18b223e8bfe1c6792a0ec2.png)
Sollen mehrere Volumes eingebunden werden, kann man den Mapping-Schritt entsprechend oft wiederholen.
4. Root-Passwort setzen
Ebenfalls unter "Advanced container settings" Klick auf "Env". Hier können nun verschiedene Environment-Variablen definiert werden. Im einfachsten Fall wird hier direkt das Root-Passwort gesetzt, indem via Klick auf "add environment variable" die Variable "ROOT_PASSWORD" mit dem gewünschten Passwort als Value gesetzt wird.
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/29c3769a457125bffd290d39c742dd47.png)
Der Container bietet noch weitere Möglichkeiten, dazu bitte die Dokumentation konsultieren.
5. Container starten
Der Container ist damit fertig konfiguriert und kann via "Deploy the container" gestartet werden:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/b47fa182a70d71c8a052e3e4eaecf337.png)
Im Anschluss daran sollte er in der Liste der laufenden Container zu finden sein:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/f30d7b1cdbbe0e5ecbfdaab26074fbc3.png)
Randbemerkung: Es ist nicht notwendig, dass die anderen Container laufen, auf deren Volumes zugegriffen werden soll. Je nachdem was man tut, sollte das auch tunlichst vermieden werden.
![Wink ;)](./images/smilies/icon_e_wink.gif)
6. Zugriff via ssh
Nun kann man sich via ssh auf den Container einloggen. Da hier in diesem HowTo kein anderer User konfiguriert wurde, erfolgt dieser Login als User root unter Verwendung des konfigurierten (gemappten) Ports. Beim ersten Login erfolgt hier noch eine Sicherheitsabfrage, da der Container der Maschine, von welcher ausgehend man sich verbinden möchte, noch nicht bekannt ist (Step 2 auf dem folgenden Screenshot). Danach erfolgt die Passworteingabe (3.) und man ist "drin". Bei einem erneuten Login (4.) erfolgt die Sicherheitsabfrage nicht mehr.
Unter dem konfigurierten Mountpoint ist nun der Inhalt des jeweiligen Docker-Volumes verfügbar, siehe Step 5 auf dem Screenshot.
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/4b0021d5a7e2898237f47c4dc996e231.png)
7. Hinweise
Wird der Container gelöscht und neu angelegt, wird der erste ssh-Zugriff fehlschlagen. Das ist korrekt und normal, weil der neue Container eine andere interne ID hat. In diesem Fall muss der entsprechende Eintrag in der Liste der bekannten Hosts gelöscht werden, was ssh i.d.R. direkt selbst vorschlägt. Hier der entsprechende Verlauf beim ersten Zugriff auf einen neuen Container:
![Bild](https://forum.timberwolf.io/ext/dmzx/imageupload/files/362231e9981cdb2e346ace54a99c4c7e.png)
- 1. Login-Versuch in neue Container-Instanz
- 2. Löschen des alten Eintrages in ~/.ssh/known_hosts
- 3. Erneuter Login
- 4./5. Jetzt wie beim allerersten Login, da das ja auch der erste Login in diesen Container ist.
![Wink ;)](./images/smilies/icon_e_wink.gif)
Viel Spass damit und wie gesagt, lasst mich wissen, wenn's irgendwo klemmt.
![Thumb Up Right :handgestures-thumbupright:](./images/smilies/handgestures/thumbupright.gif)