Files
ssh/README.md
Márcio Fernandes 253e873c66
All checks were successful
/ ssh-server-container-build-push (push) Successful in 1m11s
/ ssh-client-container-build-push (push) Successful in 18s
modified: README.md
2026-03-21 08:36:17 +00:00

130 lines
2.4 KiB
Markdown

# SSH
## server configuration
```bash
# disable password authentication
PasswordAuthentication no
# disable root login
PermitRootLogin no
```
## Create key
```bash
ssh-keygen -t ecdsa -b 521
# specif an file
ssh-keygen -t ecdsa -b 521 -f ~/.ssh/key-ecdsa
```
## Copy public key
```bash
ssh-add ~/.ssh/id_ed25519
ssh-copy-id -i ~/.ssh/y-ecdsa.pub example_user@192.0.2.4
```
## Add existing Key
```bash
ssh-add ~/.ssh/key-ecdsa
```
## Alias
```bash
Host srv01
HostName srv01.lan
User john
RemoteCommand cd ~/; exec bash --login
RequestTTY yes
```
## Port Binding
Bind local port 8001 to target-server port 80 using jump-machine.local.
_(local machine without direct access to target-server)_
```bash
ssh -f -N -L localhost:8001:target-server:80 usr@jump-machine.local
```
## ssh-client
### podman
``` bash
podman container run \
-v $HOME/.ssh:/root/.ssh:ro,Z \
git.limbosolutions.com/kb/ssh-client:latest
```
### kubernetes
```yaml
kind: Pod
metadata:
name: ssh-client
labels:
app: ssh-client
spec:
containers:
- name: ssh-client
image: git.limbosolutions.com/kb/ssh-client:latest
tty: true
command: ["bash", "-c"]
args:
- |
set -e
eval `ssh-agent`
ssh-keyscan -p ${SRV_PORT} -H ${SRV_HOST} > ~/.ssh/known_hosts
ssh ${SRV_HOST}@${SRV_USER} -p ${SRV_PORT} "ls -lah" && \
echo "INFO:Remote command executed!"
env:
- name: SRV_HOST
valueFrom:
secretKeyRef:
name: backup-secrets
key: SRV_HOST
- name: SRV_PORT
valueFrom:
secretKeyRef:
name: backup-secrets
key: SRV_PORT
- name: SRV_USER
valueFrom:
secretKeyRef:
name: backup-secrets
key: SRV_USER
volumeMounts:
- name: backup-secrets
subPath: SSH_PRIVATE_KEY
mountPath: /root/.ssh/id_ed25519
volumes:
- name: backup-secrets
secret:
secretName: backup-secrets
defaultMode: 0600
items:
- key: SSH_PRIVATE_KEY
path: SSH_PRIVATE_KEY
```
### Local Build and Development
``` bash
podman build docker/ssh-client \
--build-context ssh-client=docker/ssh-client \
-t git.limbosolutions.com/kb/ssh-client:local-dev
podman container run -it \
-v $HOME/.ssh:/root/.ssh:ro,Z \
git.limbosolutions.com/kb/ssh-client:local-dev \
/bin/bash
```