Subj : Re: File: writeln() and line endings To : All From : nelgin Date : Sat Apr 26 2025 19:34:21 On Sat, 26 Apr 2025 13:45:04 -0700 "Nightfox" (VERT/DIGDIST) wrote: > Hi DM, > > Recently I've been working on trying to get SlyEdit to behave in a > way that it could be used to edit general files (and specifically, > SSH keys & such, as it seems that might be useful at some point). > I'm at a point where I've started doing a test to make sure SlyEdit > is saving the file correctly: > > There's a system set up where I have an SSH key shared with it so > that I can SSH to it without entering a password, and my test is > basically this: 1. Move my local ~/.ssh/id_rsa to a different place, > and open it in a text editor (so I can copy it) 2. Edit ~/.ssh/id_rsa > with SlyEdit (which at this point is a new file), then copy the > contents of id_rsa from the text editor and paste it into my terminal > session with SlyEdit, and save the file 3. Try to SSH to that remote > system from my BBS machine and see if it's successful > > After this, id_rsa looks fine, but SSH authentication fails (ssh says > it loads id_rsa but it says "error in libcrypto" and prompts me for a > password). I've found that the reason seems to be id_rsa has > DOS-style line endings (with \r\n) - I verified with a hex editor and > saw that was indeed the case. If I convert id_rsa with dos2unix, I'm > able to successfully SSH to the other PC. > > SlyEdit is writing the lines using the File.writeln() function. I'm > running my BBS on Linux; should writeln() be expected to write with > \n line endings on Linux? > > As a test, I tried having SlyEdit use write() (instead of writln() > and append "\n" at the end of each line, but the lines in id_rsa > still end with \r\n. I also tried opening the file with binary (as > "wb") but the file still had \r\n line endings. > > Taking a step back, should I even be worrying about the line endings > when saving files with SlyEdit? I'm not sure what the best course of > action is here. I'm not sure if this helps, but I have a modified version of user_settings.js that allows you to create/edit/delete ssh keys. I just took the rsa key from my Linux box and used the option in the setting editor which used FSEditor to save the file. If you want to try, I put it at https://www.endofthelinebbs.com/user_settings.js You'll want to create a text.ini entry so you can see the option. I have all of mine modified but you can try this. UserDefaultsPassword: " @~\1n\1h\1y(W)~W@ \1bChange Password or Signature @~\x01n\x01h\x01y(O)~O@ \x01bAdd, Change, or Delete SSH Key\r\n" and, of course, alter it to suit. I think I remember the SlyEdit saves the text already wrapped but FSEditor doesn't? You'll maybe want to check the user's sshkey file. -- End Of The Line BBS - Plano, TX telnet endofthelinebbs.com 23 --- þ Synchronet þ End Of The Line BBS - endofthelinebbs.com .