Я хочу скопировать файлы надежно от одного компьютера до другого, другому компьютеру однако не доверяют, и у меня нет прямого доступа к нему другим затем предоставлением владельца компьютерных инструкций. В дополнение к этому это - единовременная ситуация, таким образом, любой громоздкой установки нужно избежать. Что было бы самым легким и большая часть портативного способа сделать это?
То, что я имею в виду, было бы программой со следующим рабочим процессом:
Хост с файлами дает гипотетическую команду для предоставления доступа к файлам доступными, защищенными с паролем:
file-offer -p PASSWORD file1 file2 file3 directory
Другой issuse гипотетическая команда с паролем для получения файла (GUI для выбора файлов приветствовался бы также):
file-receive -p PASSWORD file2
Самой близкой вещью, которую я имею прямо сейчас, является этот взлом, который работает, но не очень удобен и дал бы пользователям Windows некоторую проблему:
tar cf - [files]... | gpg -c --passphrase PASSWORD | nc -l -p 6666
nc host1 6666 | gpg --passphrase PASSWORD | tar xf - [files]...
Еще некоторые примечания:
cp files /var/www/
)$ gpg -e mysecretfile
You did not specify a user ID. (you may use "-r")
Current recipients:
Enter the user ID. End with an empty line: ben
Current recipients:
2048g/52FFA1E 2009-01-02 "Bob McBlah <bob.mcblah@example.com>"
Enter the user ID. End with an empty line:
$ ls *.gpg
mysecretfile.gpg
Файл mysecretfile.gpg
теперь шифруется, в некотором роде таким образом, что только человек (Bob McBlah) может дешифровать файл (асимметричный или crypto с открытым ключом).
Файл может безопасно быть отправлен с помощью любого носителя, способного к отправке файла (netcat, электронная почта, FTP, Dropbox, mediafire.com и т.д. и т.д.), с практически никаким риском перехвата.
Если Вы используете -a
Флаг "ASCII armour", зашифрованный файл (который назвали бы mysecretfile.asc
) простой текст ASCII, который может быть отправлен в каком-либо носителе, который может отправить текст ASCII, так ответы кому-либо другому, "как я могу прислать x вопрос" файла МБ, был бы применимый..
Для решения Вашей определенной проблемы возможно, простой сценарий Python мог быть записан с помощью модуля BaseHTTPServer:
import sys
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
thefile = None
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
global thefile
try:
if self.path == "/":
f = open(thefile)
self.send_response(200)
self.send_header('Content-type', 'application/x-gpg')
self.send_header('Content-disposition', 'filename="%s"' % thefile.replace("\"", ""))
self.end_headers()
self.wfile.write(f.read())
f.close()
else:
self.send_error(404, 'File not found: %s' % self.path)
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
def main():
global thefile
if len(sys.argv) == 2:
thefile = sys.argv[1]
else:
print "Usage: %s [path to served file]" % sys.argv[0]
sys.exit(1)
try:
server = HTTPServer(('', 8080), MyHandler())
print 'Started server on port 8080'
server.serve_forever()
except KeyboardInterrupt:
print 'Keyboard abort, shutting down server'
server.socket.close()
if __name__ == '__main__':
main()
Сохраните его как servefile.py
и выполненный как python servefile.py /path/to/my/file.gpg
Вышеупомянутый код не является точно большим, но должен быть хорошо для одноразовых передач.
Действительно ли передачей является выполнимая Карта памяти? Это могло бы быть слишком громоздким, но это решит проблему соединения с недоверяемым компьютером. Кроме того, для пользователей никакой ОС не было бы слишком трудно вытянуть необходимые файлы с минимальной инструкцией.
При поиске легкого веб-сервера, эта страница в Википедии могла бы помочь.
SSH может использовать общественность / аутентификация с закрытым ключом. Это позволяет Вам давать "недоверяемому" компьютеру свой открытый ключ. И затем Вы держите свой закрытый ключ в секрете и защищенный паролем, и затем можно войти в другую машину.
Вы можете затем scp файлы пока пользователь Вы, ssh в имеет соответствующие полномочия. И потому что Вы используете SSH, все файлы шифруются в пути.
Вы могли также настроить бесплатную учетную запись на Inbox.com. Один из их сервисов (помимо электронной почты) является хранилищем файлов до 5 ГБ (также свободный). Просто создайте учетную запись, которую можно совместно использовать, загрузить файлы и позволить другому человеку загрузить их. Впоследствии, забудьте об учетной записи, измените пароль и сохраните его или сделайте то, что Вы хотите с ним.