kill [ -s signal | -p ]
Этот синтаксис в странице руководства означает:
Можно использовать
kill -s signal
или можно использоватьkill -p
, но Вы не можете использовать обоих-s
и-p
одновременно.
Канал (|
) обозначает (эксклюзивный) или в документации, это не часть команды.
Когда Вы вводите
foo | bar
в Вашей оболочке это попытается запуститься foo
и bar
, и передайте вывод по каналу foo
к bar
программа. (Это - оболочка, делающая это, нет foo
(или bar
), |
не передается ни одному процессу.) В Вашем случае вторая часть -p 123
, таким образом, оболочка пытается найти исполняемый файл названным -p
и сбои с тем сообщением об ошибке.
Вы можете добавить пользователя без действительного логина:
# useradd -s /sbin/nologin dbuser
Установите его пароль:
# passwd dbuser
Или оставьте его не установленным и сделайте SSH ключи:
(on local machine)
$ ssh-keygen
(on remote machine)
# su -s /bin/bash - dbuser
$ cat local_id_rsa.pub >>~/.ssh/authorized_keys
На этом этапе вы можете использовать SSH для создания туннеля:
ssh -TfnN -L localhost:<local_port>:localhost:<db_server_port> dbuser@remote_host
Если вы использовали SSH ключи для аутентификации, это будет работать автоматически, в противном случае вам нужно будет ввести пароль. ssh перейдет в фоновый режим сразу после аутентификации и не будет пытаться выполнить какую-либо команду, но туннель будет открыт. Введите 'localhost' и значение
$ ssh dbuser@remote_host
dbuser@remote_host's password:
Last login: Fri Oct 9 09:27:24 2015 from local_host
This account is currently not available.
Connection to remote_host closed.
SSH не выполнит ни одну оболочку или команду от имени удаленного пользователя; /sbin/nologin
будет выкидывать его каждый раз.