Хотя было бы неплохо иметь возможность подключаться к вашей системе через ssh из любого места в Интернете, существуют автоматизированные системы парольной атаки, которые блокируют открытый порт ssh и применяют различные атаки на учетную запись joe и словарь против вашей системы. Это может усугубить чтение в вашем ночном отчете и является пустой тратой пропускной способности.
Если у вас есть веб-сервер в той же системе, вы можете использовать оболочки php и tcp, чтобы ограничить входящий трафик ssh для известных систем, а также дать вам секретный ключ, чтобы разрешить себе доступ из произвольных систем в Интернете.
Вот как вы это делаете:
запретить все ssh-соединения в /etc/hosts.deny:
# /etc/hosts.deny fragment
sshd: all
Разрешите известные системы по IP в /etc/hosts.allow, а также добавьте файл для временного доступа:
# /etc/hosts.allow fragment
sshd: 10.0.10.2 # some system
sshd: 172.99.99.99 # some other system
sshd: /etc/hosts.allow.temporary-sshd-access
Создайте php-файл на вашем веб-сервере и дайте ему неочевидное имя, например my-sshd-access.php:
<?php
function get_ip()
{
return getenv("REMOTE_ADDR");
}
?>
<?php
$out='/etc/hosts.allow.temporary-sshd-access';
$log='/var/log/sshd-access-addition-log';
print "Was:";
readfile($out);
print "<br>";
$ip=get_ip();
$fp=fopen($out,"w");
fputs($fp,$ip);
fclose($fp);
$lfp=fopen($log,"a");
fputs($lfp,$ip);
fputs($lfp,"n");
fclose($lfp);
print "Wrote: ";
readfile($out);
?>
Простите код php - я провёл его откуда-то еще, так что он, вероятно, мог бы вытереть целую кучу. Все, что он делает, это добавляет IP-адрес системы, обращающейся к нему, в файл /etc/hosts.allow.teilitary-sshd-access, который читается sshd (из-за его включения /etc/hosts.allow) во время соединения ,
Теперь, когда вы находитесь в какой-либо произвольной системе в Интернете и хотите использовать ssh для этой системы, сначала используйте веб-браузер и нажмите этот файл (или используйте wget или эквивалентный):
$ wget http://your.system.name/my-sshd-access.php
Теперь вы должны быть в состоянии подключиться к вашей системе. Если это то место, от которого вы, вероятно, будете часто пользоваться ssh'ом, было бы тривиально прочитать содержимое файла /etc/hosts.allow.tetims-sshd-access и добавить IP-адрес в / etc / hosts без возможности восстановления. разрешать.