This trick is for Linux and SSH users who often log in to remote systems. Having to type the same info over and over again is mind-numbingly repetitive, but using an SSH config file makes the process much more convenient.

It's pretty easy to turn

scp --P 50001 username@remote.sshserver.com:somefile ./somefile

ssh --p 50001 username@remote.sshserver.com

into something quick:

scp remotehost:somefile ./somefile

ssh remotehost

Aside from specifying port numbers, addresses, and user names, you can specify key files, time out intervals, and tons of other options. All it takes is one little file.

Fire up a text editor and point it to this file:

~/.ssh/config

Alternatively, you could put the contents and save it to that file, but it's best to make sure to open it if it already exists. Here's the basic format of what you need to put (or add to what you have).

config file

Replace "your_alias_name" with a short name for this connection. Something like "home," "work," or "asdf" should suffice. ;-)

Substitute your username, and the web address (or IP address for destinations inside of your network) instead of remote.sshserver.com. Lastly, if you use a custom port (anything other than 22, the default), specify that. Otherwise, you can skip that last line.

Next, I created a pair of key files on my remote server to use, so I didn't have to supply a password each time. For more information, check out How To Remotely Copy Files Over SSH Without Entering Your Password and skip down to the "SSH and SCP Without Passwords" section for all of the details.

key pairs

Now, you can add an extra line and point it to your key file.

IdentityFile ~/path/to/id_file

id file

Let's add a "keep alive" function to our connect, shall we? This will prevent your connection from ending by refreshing your connection every X seconds, a maximum number of Y times:

ServerAliveInterval X

ServerAliveCountMax Y

alive int

Our example will refresh every 2 minutes for a maximum of 30 consecutive times. That means, it will stop refreshing after an hour. This works from your client regardless of what your server has configured.

You can add multiple servers this way by adding another section with a difference Host section. And, if you want to create a set of default options, you can set the Host value to a single asterisk (*). Here's a great example file:

final
sshot-1

Much better!

This is handy for situations when creating a bash alias isn't an option. It also makes it easier to keep track of all of your SSH-based options (from the client-side) in one consolidated place. If you plan to use this for scripts, you can also use

BatchMode yes

to disable prompts to enter passwords. Of course, you'd still need to authenticate using key files.

If you want to look more into the StrictHostKeyChecking option, be sure to Learn the Ins and Outs of OpenSSH on Your Linux PC. Of course, there's a cornucopia of options available to you in the OpenSSH man page, too.

Linux Commands

Files

tar · pv · cat · tac · chmod · grep ·  diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr

Processes

alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap

Networking

netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts