Update December 2019:
As Chris Adams pointed out below, there has been a fairly significant change to Openssh in the 6.5 years since this answer was written, and there is a new option that is much safer than the original advice below:
* ssh(1): expand the StrictHostKeyChecking option with two new
settings. The first "accept-new" will automatically accept
hitherto-unseen keys but will refuse connections for changed or
invalid hostkeys. This is a safer subset of the current behaviour
of StrictHostKeyChecking=no. The second setting "off", is a synonym
for the current behaviour of StrictHostKeyChecking=no: accept new
host keys, and continue connection for hosts with incorrect
hostkeys. A future release will change the meaning of
StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400
So instead of setting StrictHostKeyChecking no
in your ssh_config
file, set StrictHostKeyChecking accept-new
.
Set StrictHostKeyChecking no
in your /etc/ssh/ssh_config
file, where it will be a global option used by every user on the server. Or set it in your ~/.ssh/config
file, where it will be the default for only the current user. Or you can use it on the command line:
ssh -o StrictHostKeyChecking=no -l "$user" "$host"
Here's an explanation of how this works from man ssh_config
(or see this more current version):
StrictHostKeyChecking
If this flag is set to “yes”, ssh will never automatically add
host keys to the $HOME/.ssh/known_hosts
file, and refuses to
connect to hosts whose host key has changed.
This provides maximum protection
against trojan horse attacks, however, can be
annoying when the /etc/ssh/ssh_known_hosts
file is
poorly maintained,
or connections to new hosts are frequently made. This
option forces the user to manually add all new hosts. If this
flag is set to “no”, ssh will automatically add new host keys to
the user known hosts files. If this flag is set to “ask”, new
host keys will be added to the user known host files only after
the user has confirmed that is what they really want to do, and
ssh will refuse to connect to hosts whose host key has changed.
The host keys of known hosts will be verified automatically in
all cases. The argument must be “yes”, “no” or “ask”. The
default is “ask”.