Разобрался, как реализовать авторизацию по паролю и по ключу в SSH2.Хотелось бы создать следующий вариант:
внутри локальной сети оставить по паролю, потому что зайти теоретически может понадобиться с любой машины и плодить ключи не хотелось бы.
А вот из-вне сети сделать авторизацию по ключу с паролем для доп. защиты.Читая мануалы не нашел такой возможности.
Кто нибудь подскажет - возможно это?
Используйте различные ключи команды ssh.
ssh -o ......... user@host
man ssh
man ssh_config>PreferredAuthentications
> Specifies the order in which the client should try protocol 2
> authentication methods. This allows a client to prefer one
> method (e.g. keyboard-interactive) over another method (e.g.
> password) The default for this option is:
> ``hostbased,publickey,keyboard-interactive,password''.
это не то.
в данном случае вход зависит от режима запуска клиента, его можно разруливать просто наличием или отсутствием Private-части ключа.
Хотелось бы чтобы это зависело от настроек ssh-сервера (читай от администратора), а не от любого желающего.
Например с 192.168.0.0/24 - по ключу или паролю.
С остальных адресов ТОЛЬКО по ключу.
Вы можете указывать различные опции для авторизации (_обязательные_) в конфигурационном файле для различных хостов. Посмотрите внимательнее мануал, вроде я не ошибаюсь.
Привет,OpenSSH может провести автентикацию по следющим признакам:
1. Trusted Remote Host (бррр!)
2. RSA key
3. Kerberos
4. Local (в классическом смысле /etc/passwd, но можно так же и через PAM)Во всех случаях автентикация даже по одному признаку является достаточной, т.е. если у вас RSA ключ (и вы введете правильно pass фразу, если такая есть), то пароль на shell account у вас никто не спросит.
Можно подойти так: разрешить RSA и local; затем local автентикацию провести через PAM и написать свой модуль, который будет разрешать автентикацию только если запрос приходит с определенных хостов.
Иной вариант - зап
4. Local (в классическом смысле /etc/passwd, но можно так же и через PAM)Во всех случаях автентикация даже по одному признаку является достаточной, т.е. если у вас RSA ключ (и вы введете правильно pass фразу, если такая есть), то пароль на shell account у вас никто не спросит.
Можно подойти так: разрешить RSA и local; затем local автентикацию провести через PAM и написать свой модуль, который будет разрешать автентикацию только если запрос приходит с определенных хостов.
Иной вариант - запустить два sshd на разных портах с разными типами автентикации и настроить redirect через iptables 22-ого порта ко второмоу, если запрос пришел "от мира".
WWell,