Ядро будет отслеживать ваше соединение, и вы мало что можете с этим поделать. Я даже не уверен, что права root помогут вам здесь (по крайней мере, без некоторой магии модуля ядра) .
Если вы хотите спрятать туда, где вы собираетесь, лучший способ - это, вероятно, представить, что вы собираетесь куда-то вместо этого. Другими словами: используйте прокси или что-нибудь, что может безопасно ретранслировать SSH-соединение.
Большой акцент на безопасно здесь. Обязательно поддерживайте сквозное шифрование и не позволяйте сторонним лицам открывать для вас канал SSH.
Вы можете, например, использовать torsocks
, что позволит вам ретранслировать поток TCP через ToR. Таким образом, вместо lsof
раскрытия ...
$ ssh remotehost
$ lsof SSH_PID # in another terminal
ssh SSH_PID you TCP localhost:xx->remotehost:ssh (ESTABLISHED)
вы получите ...
$ torsocks ssh remotehost
$ lsof SSH_PID # in another terminal
ssh SSH_PID you TCP localhost:yy->localhost:9050 (ESTABLISHED)
Разница в том, что ssh
будет подключаться к вашему локальному серверу ToR SOCKS, а не напрямую к удаленному хосту. Что хорошо с ToR, так это то, что даже локальный процесс ToR не раскрывает ваш пункт назначения:
$ lsof TOR_PID
tor TOR_PID tor TCP localhost:zz->tornode:https (ESTABLISHED)
( сервер ToR сначала подключается к узлу ToR )
Другое преимущество заключается в том, что не только вы скрываете место назначения от источника, но вы также скроете источник от места назначения. Удаленный хост, к которому вы подключаетесь, увидит соединение, исходящее из сети ToR. Конечно, в зависимости от того, кто другой системный администратор, этот небольшой трюк может не работать очень долго.
С некоторыми настройками можно будет установить что-то подобное с привилегиями пользовательского пространства. Вероятно, вы могли бы скомпилировать что-нибудь в своем домашнем каталоге и приступить к работе. Если нет, то вам, вероятно, придется выбрать что-то другое для ретрансляции. Можно было бы «пожертвовать» удаленной машиной, чтобы она действовала как ретранслятор для других: вы всегда будете сначала использовать ssh
на одной, прежде чем подключаться к другим.
Почему бы не написать сценарий, который добавляет псевдонимы в ваш.bashrc для этих команд DOS и сопоставляет эти команды с соответствующим аналогом Bash. Вы также можете сделать так, чтобы вы могли легко удалить эти записи с помощью скрипта, чтобы вы могли в основном перенести свою среду bash с компьютера на компьютер.
Вы также можете сделать так, чтобы он перемещал исходный.bashrc в.bashrcbak и ставил ваш на место, а затем, когда вы хотите вернуться, просто перемещайте исходный файл обратно.
Или вы можете создать псевдонимы для одной сессии, как показано здесь:https://unix.stackexchange.com/a/148928/321418
Спасибо roamia и Michael Prokopec за то, что указали мне правильное направление. Это то, с чем я закончил, и это работает так, как предполагается. Если вы видите какие-либо ошибки или что-то, что я могу сделать, чтобы улучшить код, сообщите мне об этом. Это мой первый скрипт для Linux, который я создал.
#!/bin/bash
counter=1
while : [$counter -lt 2]
do
read -p 'Your Name Here > ' cmd "arg"
case $cmd in
chdir|CHDIR)
cd $arg
;;
cls|CLS)
clear
;;
copy|COPY)
cp $arg
;;
createdir|CREATEDIR)
mkdir $arg
;;
createfile|CREATEFILE)
touch $arg
;;
delete|DELETE)
rm $arg
;;
dir|DIR)
ls
;;
move|MOVE)
mv $arg
;;
print|PRINT)
echo $arg
;;
quit|QUIT)
counter=2
;;
rename|RENAME)
mv $arg
;;
type|TYPE)
cat $arg
;;
*)
echo "Command Not Found!!"
;;
esac
done
Похоже, ваш сценарий просто заменяет имена команд альтернативными именами. Это легко сделать, предоставив псевдонимы в оболочке.
Например:
alias remove=rm
alias type=cat
alias dir='ls -l'
alias cls=clear
alias quit=exit
Вы можете поместить их в файл с именем, например dos_compat
, а затем запустить интерактивную bash
оболочку, используя
bash --rcfile dos_compat
Это запустит новую интерактивную оболочку с доступными псевдонимами. Используйте exit
или quit
или Ctrl+D , чтобы вернуться к исходной оболочке.
Если какая-либо команда DOS, которую вы хотите реализовать, является более сложной, чем простой псевдоним, вам необходимо реализовать ее как функцию оболочки в файле dos_compat
. Одним из способов использования этого может быть автоматическое обнаружение DOS -, таких как пути в аргументах имени файла, и изменение таких вещей, как C:\
на /
, или перестановка аргументов для более сложных команд DOS.
Преимущество этого способа заключается в том, что вы по-прежнему сможете использовать команды оболочки Unix наряду с псевдонимами DOS, а также сможете использовать команды DOS в более сложных составных конструкциях команд оболочки, если хотите. к.