# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
# $FreeBSD: src/crypto/openssh/sshd_config,v 1.47.2.2.4.1 2009/04/15 03:14:26 kensmith Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
# Note that some of FreeBSD's defaults differ from OpenBSD's, and
# FreeBSD has a few additional options.
#VersionAddendum FreeBSD-20080901
Port 22
Protocol 2,1
AddressFamily any
ListenAddress мой внешний ай пи:22
#ListenAddress ::
# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/id_rsa
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 1h
ServerKeyBits 1024
# Logging
# obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
LogLevel DEBUG
# Authentication:
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
MaxAuthTries 6
MaxSessions 10
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/id_rsa.pub
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts yes
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# Change to yes to enable built-in password authentication.
PasswordAuthentication no
PermitEmptyPasswords no
# Change to no to disable PAM authentication
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'no' to disable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM no
AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts no
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
PrintMotd yes
PrintLastLog yes
TCPKeepAlive yes
UseLogin no
UsePrivilegeSeparation yes
PermitUserEnvironment no
Compression delayed
ClientAliveInterval 0
ClientAliveCountMax 3
UseDNS yes
PidFile /var/run/sshd.pid
MaxStartups 10
PermitTunnel no
ChrootDirectory none
# no default banner path
Banner none
# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
Пытаюсь запустить /usr/sbin/sshd и получаю
Could not load host key: /etc/ssh/id_rsa
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting
Создаю пару ключей rsa размером 1024, помещаю секретный в /etc/ssh/id_rsa а публичный в каталог пользователя /home/юзер/.ssh/id_rsa.
Извините, зачем вы это делаете? Если хотите настроить безпарольный вход по ключу, воспользуйтесь ssh-keygen на клиенте и положите полученный публичный ключ в ~/.ssh/authorized_keys юзера на сервере, на который будете ходить. А /etc/ssh/id_rsa оставьте в покое, его трогать вам не надо.
Наверно, мой вопрос правильней было бы сформулировать "Как правильно создавать ключ хоста?" )) Сразу после своего поста я удалил все ключи, поместил в автозапуск sshd_enable и перезапуск. При загрузке получил в папке /etc/ssh/ три пары ключей - секретных и публичных (протокол 1, дса и рса, как я понимаю они выписаны на roota). Сервер запустился. Потом под пользователем создал ключи (по-умолчанию оба лежат в домашней папке). В конфиге сервера теперь так HostKey /etc/ssh/ssh_host_dsa_key (по идее это ключ рута) , в конфиге клиента так AuthorizedKeysFile %h/.ssh/id_dsa.pub . Рса и протокол 1 закоментировал. Вроде нормально подключаюсь через виндозную putty.
Если хотите настроить безпарольный вход по ключу, воспользуйтесь ssh-keygen на клиенте и положите полученный публичный ключ в ~/.ssh/authorized_keys юзера на сервере, на который будете ходить. А /etc/ssh/id_rsa оставьте в покое, его трогать вам не надо.
Мне кажется, я так и делал вначале, но сервер не запускался. В связи с этим вопрос. Правда ли что ключ хоста может создать только рут?
Ключ хоста делается автоматически при установке. Дальше его никто не трогает. Этот ключ используется для идентификации хоста, не для аутентификации юзеров.
man sshd
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_rsa_key
These three files contain the private parts of the host keys.
These files should only be owned by root, readable only by root,
and not accessible to others. Note that sshd does not start if
these files are group/world-accessible.
/etc/ssh/ssh_host_key.pub
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key.pub
These three files contain the public parts of the host keys.
These files should be world-readable but writable only by root.
Their contents should match the respective private parts. These
files are not really used for anything; they are provided for the
convenience of the user so their contents can be copied to known
hosts files. These files are created using ssh-keygen(1).