Difference between revisions of "OpenSSH"
Tags: Mobile web edit, Mobile edit |
|||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 4: | Line 4: | ||
The OpenSSH suite includes the following command-line utilities and daemons: | The OpenSSH suite includes the following command-line utilities and daemons: | ||
| − | * <code>[[ssh (OpenSSH client)|ssh]]</code>, ssh client and TCP secure replacement for | + | * <code>[[ssh (OpenSSH client)|ssh]]</code>, [[ssh client]] and TCP secure replacement for <code>[[rlogin]]</code>, <code>[[rsh]]</code> and <code>[[telnet]]</code> to allow shell access to a remote machine. |
* <code>[[scp]]</code>, a replacement for <code>[[rcp]]</code> | * <code>[[scp]]</code>, a replacement for <code>[[rcp]]</code> | ||
* <code>sftp</code>, a replacement for <code>[[ftp]]</code> to copy files between computers | * <code>sftp</code>, a replacement for <code>[[ftp]]</code> to copy files between computers | ||
* <code>[[sshd]]</code>, the SSH server daemon which allows shell access and file transfers to a remote machine. | * <code>[[sshd]]</code>, the SSH server daemon which allows shell access and file transfers to a remote machine. | ||
* <code>[[ssh-keygen]]</code>, a tool to inspect and generate the RSA, DSA and Elliptic Curve keys that are used for user and host authentication | * <code>[[ssh-keygen]]</code>, a tool to inspect and generate the RSA, DSA and Elliptic Curve keys that are used for user and host authentication | ||
| + | * <code>[[ssh-keyscan]]</code>, which scans a list of hosts and collects their public keys | ||
* <code>[[ssh-agent]]</code> and <code>[[ssh-add]]</code>, utilities to ease authentication by holding keys ready and avoid the need to enter passphrases every time they are used | * <code>[[ssh-agent]]</code> and <code>[[ssh-add]]</code>, utilities to ease authentication by holding keys ready and avoid the need to enter passphrases every time they are used | ||
| − | |||
* <code>[[ssh-copy-id]]</code>, copy local keys to remote machine. | * <code>[[ssh-copy-id]]</code>, copy local keys to remote machine. | ||
| Line 42: | Line 42: | ||
=== Intermediate === | === Intermediate === | ||
| − | * Learn about different client connection options, such us: <code>- | + | * Learn about different client connection options, such us: <code>-o[[BatchMode]]=yes</code> or <code>-o ConnectTimeout=2</code><ref>https://linux.die.net/man/1/ssh</ref> |
| − | * Connect to remote server temporarily turning off [[host key checking]], (security implications): <code>ssh - | + | * Connect to remote server temporarily turning off [[host key checking]], (security implications): <code>ssh -o[[StrictHostKeyChecking]]=no SERVER_NAME</code> |
=== Advanced === | === Advanced === | ||
| Line 56: | Line 56: | ||
* [[MAC (message authentication code)]] | * [[MAC (message authentication code)]] | ||
* [[Damien Miller]] | * [[Damien Miller]] | ||
| + | * [[Key Revocation Lists (KRL)]] | ||
| + | * [[AWS EC2 Instance Connect]] (Jun 2019) | ||
| + | * [[Telnet]] (deprecated use), [[netcat]] | ||
== See also == | == See also == | ||
| − | |||
* {{OpenSSH}} | * {{OpenSSH}} | ||
* <code>sslh</code><ref>https://github.com/yrutschle/sslh</ref> Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port) | * <code>sslh</code><ref>https://github.com/yrutschle/sslh</ref> Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port) | ||
* <code>sshpass</code> (<code>brew install http://git.io/sshpass.rb</code>) | * <code>sshpass</code> (<code>brew install http://git.io/sshpass.rb</code>) | ||
* <code>conch</code> client written in python | * <code>conch</code> client written in python | ||
| − | * | + | * {{openssl}} |
* {{fail2ban}} | * {{fail2ban}} | ||
| − | |||
| − | |||
| − | |||
[[Category:Networking]] | [[Category:Networking]] | ||
Latest revision as of 10:43, 24 July 2026
OpenSSH is a popular suite of software utilities implementing Secure Shell (SSH) protocol. OpenSSH includes the ability to set up a TCP secured channel and it is widely use as a replacement for not secured telnet and secure replacement of file transfers such as rcp and ftp. OpenSSH offers a great number of features including ssh session multiplexing. [1][2]
The OpenSSH suite includes the following command-line utilities and daemons:
ssh, ssh client and TCP secure replacement forrlogin,rshandtelnetto allow shell access to a remote machine.scp, a replacement forrcpsftp, a replacement forftpto copy files between computerssshd, the SSH server daemon which allows shell access and file transfers to a remote machine.ssh-keygen, a tool to inspect and generate the RSA, DSA and Elliptic Curve keys that are used for user and host authenticationssh-keyscan, which scans a list of hosts and collects their public keysssh-agentandssh-add, utilities to ease authentication by holding keys ready and avoid the need to enter passphrases every time they are usedssh-copy-id, copy local keys to remote machine.
Contents
Readings[edit]
Config[edit]
- Client:
/etc/ssh/ssh_configor~./config - Server:
/etc/ssh/sshd_config
ssh clients[edit]
OpenSSH includes an ssh client:ssh. Others clients are available such us PuTTY, mosh, paramiko and autossh[3].
autossh[4] main feature not include in OpenSSH ssh client is the capability to monitor an ssh connection and restart it if necessary.
- Loop waiting to connect to server:
AUTOSSH_POLL=5 AUTOSSH_GATETIME=0 autossh -M 0 -o ServerAliveInterval=5 -o ServerAliveCountMax=1 YOUR_SERVER_NAME_OR_IP
Ssh clients in Linux are frequently executed inside a terminal or using any kind of terminal multiplexer such as tmux or screen.
Activities[edit]
Basic[edit]
- Install OpenSSH:
apt install openssh-server - Convert a PuTTY ssh key format to Openssh format, you can follow the following instructions http://www.codeblocq.com/2016/05/Convert-a-putty-ppk-key-to-a-pem-file-on-OSX/, https://stackoverflow.com/questions/3475069/use-ppk-file-in-mac-terminal-to-connect-to-remote-connection-over-ssh
- Open a reverse ssh tunnel, follow the following instructions https://www.howtoforge.com/reverse-ssh-tunneling
- Configure OpenSSH to reuse ssh connections (
ControlMaster) - Generate a public Key from a private Key: [5]
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub(example for RSA keys but can be applied to other key types) - Configure OpenSSH to allow Public-key authentication (
authorized_keys)[6] - Activate SSH on macOS:
sudo systemsetup -setremotelogin on - Activate OpenSSH on Windows (Windows Server 2019 or Windows 10):[7]
Intermediate[edit]
- Learn about different client connection options, such us:
-oBatchMode=yesor-o ConnectTimeout=2[8] - Connect to remote server temporarily turning off host key checking, (security implications):
ssh -oStrictHostKeyChecking=no SERVER_NAME
Advanced[edit]
- Read ssh documentation about multiplexing https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing and its implementation details: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.mux?annotate=HEAD
- Configure ssh session multiplexing
- Use
ProxyJumpdirective to connect using a "Jump Server"[9] - Run a shell script on a remote machine using ssh:
ssh root@MachineB 'bash -s' < local_script.sh[10]. See also: parallel - Read https://github.com/openssh/openssh-portable source code
- Read OpenSSH changelog
Related terms[edit]
- MAC (message authentication code)
- Damien Miller
- Key Revocation Lists (KRL)
- AWS EC2 Instance Connect (Jun 2019)
- Telnet (deprecated use), netcat
See also[edit]
- OpenSSH (changelog):
/etc/ssh/sshd_config|/etc/ssh/ssh_config|~/.ssh/|openSSL | sshd logs|sftp|scp|authorized_keys|ssh-keygen|ssh-keyscan|ssh-add|ssh-agent|ssh|Ssh -O stop|ssh-copy-id|CheckHostIP|UseKeychain, OpenSSF, ~/.ssh/authorized_keys sslh[11] Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)sshpass(brew install http://git.io/sshpass.rb)conchclient written in pythonopenssl[rand | s_client | passwd|openssl req|openssl rsa|openssl genrsa|openssl x509|openssl ca|openssl verify|openssl ec|openssl dgst|openssl pkcs12|openssl asn1parse|openssl help|.cer to .pem, openssl version- Port knocking,
fail2ban[12]fwknop, DenyHosts
Advertising: