Is this port completely random, or can it be specified somewhere on the client side ?
Все соединения TCP/UDP работают, выбирая случайный порт для клиента (, в то время как сервер имеет хорошо -известный порт ). Вы не можете указать порт, ОС выбирает его за вас (, хотя, возможно, клиент может обойти это, если вы добавите в него достаточно кода ).
I need to know this port in advance, so that I can configure the firewall.
Нет, не знаешь. Вы сообщаете брандмауэру порт сервера, а затем сообщаете средству отслеживания соединений вашего брандмауэра, что установленные соединения с этим портом должны проходить. Это будет иметь дело со случайным портом на стороне клиента.
Выяснил это с помощью --keyring
и --no-default-keyring
.
Добавлено несколько функций в .zshrc
для повышения эффективности. (В macOS связка ключей по умолчанию называетсяpubring.gpg
).
# Search keys.openpgp.org
function search-keys() {
if [ -z "$1" ]; then
printf "%s\n" "Usage: search-keys [keyring] id"
return 1
fi
if [ -z "$2" ]; then
2=$1
1=pubring.gpg
fi
if [ $1 != "pubring.gpg" ] && [ $1 != "tmp.gpg" ]; then
printf "%s\n" "Invalid keyring $1"
return 1
fi
gpg --keyring $1 --no-default-keyring --keyserver hkps://keys.openpgp.org --search-keys $2
}
# Import public key
function import() {
if [ -z "$1" ]; then
printf "%s\n" "Usage: import [keyring] /path/to/pubkey.asc"
return 1
fi
if [ -z "$2" ]; then
2=$1
1=pubring.gpg
fi
if [ $1 != "pubring.gpg" ] && [ $1 != "tmp.gpg" ]; then
printf "%s\n" "Invalid keyring $1"
return 1
fi
gpg --keyring $1 --no-default-keyring --import $2
}
# List public keys
function list-keys() {
if [ -z "$1" ]; then
1=pubring.gpg
fi
if [ $1 != "pubring.gpg" ] && [ $1 != "tmp.gpg" ]; then
printf "%s\n" "Invalid keyring $1"
return 1
fi
gpg --keyring $1 --no-default-keyring --list-keys $2
}
# Encrypt message for id
function encrypt() {
if [ -z "$1" ]; then
printf "%s\n" "Usage: encrypt id"
return 1
fi
gpg --keyring "tmp.gpg" --encrypt --sign --armor -r 0xC1323A377DE14C8B -r $1
}
# Decrypt and decode encrypted file
function decrypt() {
if [ -z "$1" ]; then
printf "%s\n" "Usage: decrypt /path/to/encrypted.asc"
return 1
fi
gpg --decrypt $1 | perl -MMIME::QuotedPrint -0777 -nle 'print decode_qp($_)'
}
Замените 0xC1323A377DE14C8B
своим открытым ключом.